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

时间:2014-06-17 23:50:13

标签: python macos pyqt homebrew

尝试在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:

我已经尝试过sym链接/ 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 个答案:

答案 0 :(得分:1)

尝试使用configure-ng.py代替configure.pyThis is apparently the recommended approach these days.

如果您收到错误fatal error: sipAPIQtCore.h: No such file or directory,请尝试添加

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

configure-mg.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的情况下进行配置。