PyQt安装10.7“x86_64架构的未定义符号”

2 投票
1 回答
558 浏览
提问于 2025-04-18 10:09

我在尝试在OS X 10.7上安装PyQt:

g++ -headerpad_max_install_names -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5 -o w_qpyopengl.app/Contents/MacOS/w_qpyopengl    -F/usr/local/Cellar/qt/4.8.6/lib -L/usr/local/Cellar/qt/4.8.6/lib -framework QtGui -L/opt/X11/lib -L/usr/local/Cellar/qt/4.8.6/lib -F/usr/local/Cellar/qt/4.8.6/lib -framework QtCore 
Undefined symbols for architecture x86_64:
  "_main", referenced from:
      start in crt1.10.5.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make[2]: *** [w_qpyopengl.app/Contents/MacOS/w_qpyopengl] Error 1
make[1]: *** [all] Error 2
make: *** [all] Error 2

Make文件已经配置为

python configure.py -d /Library/Python/2.7/site-packages/ -g -q /usr/local/bin/qmake --use-arch=x86_64

$PATH是

/usr/local/bin/brew:/Users/username/anaconda/bin:/usr/local/lib/python2.7/site-packages:/usr/local/sbin:/usr/bin:/bin:/usr/local/bin:/usr/sbin:/sbin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin:/usr/local/smlnj-110.75/bin

$LIBRARY_PATH是

$ echo $LIBRARY_PATH
/usr/lib:

我已经尝试过将/usr/lib链接到/opt/X11/lib(但那个文件夹并不存在)。crt1.10.5可以在这里找到

PyQt-mac-gpl-4.11 solidblanc$ locate crt1.10.5
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer
/SDKs/MacOSX10.7.sdk/usr/lib/crt1.10.5.o
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer
/SDKs/MacOSX10.8.sdk/usr/lib/crt1.10.5.o
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer
/SDKs/iPhoneSimulator6.1.sdk/usr/lib/crt1.10.5.o
/usr/lib/crt1.10.5.o

我不知道该怎么办。

1 个回答

1

试着用 configure-ng.py 来代替 configure.py现在看来,这种方法是比较推荐的。

如果你遇到错误 fatal error: sipAPIQtCore.h: No such file or directory,可以尝试在

INCPATH+=/path/to/PyQt-mac-gpl-4.11/_qt

configure-ng.py 命令中添加一些内容。例如,

python configure-ng.py -g --sip-incdir=$HOME/Downloads/sip-4.16.1/siplib INCPATH+=$HOME/Downloads/PyQt-mac-gpl-4.11/_qt

如果这样构建出来的 PyQt 版本经常崩溃(很可能会崩溃,因为我遇到过),可以尝试在配置时不加 -g

撰写回答