PyQt安装10.7“x86_64架构的未定义符号”
我在尝试在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
。