Mac 上使用Qt、OpenGL常见问题1——glut

:-1: error: symbol(s) not found for architecture x86_64

:-1: error: linker command failed with exit code 1 (use -v to see invocation)

在使用glut库的时候,会报以上错误。当然使用其他第三方库的时候也会存在以上问题,以下解决方案可以类推。

在此之前,使用OpenGL的时候,首先需要在.pro文件中添加QT+=opengl

之后继续报错,可能是由于在mac系统升级之后Qt没有升级导致,因为Qt是用Xcode编译的,而新的Xcode调用的OS X 10.9,但是Qt还没有更新,还是用10.6。

更改 ../Qt5.2.0/5.2.0-rc1/clang_64/mkspecs/macx-clang/qmake.conf  文件中的QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.6,

改为 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.9,然后对QT对工程先清理,再rebuild,就可以编译了。

还不能正常使用,则可能是需要加载第三方库,使用Add Library,glut在Mac中是Xcode自带的,/System/Library/Frameworks/GLUT.framework,然后就可以编译完成了,此时.pro文件变化有

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../../System/Library/Frameworks/release/ -lGLUT
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../../System/Library/Frameworks/debug/ -lGLUT
else:mac: LIBS += -F$$PWD/../../../../../System/Library/Frameworks/ -framework GLUT
else:unix: LIBS += -L$$PWD/../../../../../System/Library/Frameworks/ -lGLUT

INCLUDEPATH += $$PWD/../../../../../System/Library/Frameworks
DEPENDPATH += $$PWD/../../../../../System/Library/Frameworks
编译成功!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。