我正在尝试将一个大型项目从学校编译到我自己的机器上(Mac OS X 10.8.4)。值得庆幸的是,我已经设法找出大多数本机依赖/库位置并相应地修改了makefile。
然而,我遇到了以下错误:
ld: library not found for -lQtCore
在makefile中,lQtCore
是此行的一部分:
QT_LIBS = -L$(QT4DIR)/lib -lQtCore -lQtGui -lQtOpenGL
QT4DIR
变量应该是正确的;它代表了这个目录位置:
/sw/lib/qt4-mac/
当我从那里进入/sw/lib/qt4-mac/
然后进入lib
时,我有这些(抱歉对齐不好):
Qt3Support.framework QtSql.framework
Qt3Support.la QtSql.la
Qt3Support_debug.la QtSql_debug.la
QtAssistant.framework QtSvg.framework
QtCore.framework QtSvg.la
QtCore.la QtSvg_debug.la
QtCore_debug.la QtTest.framework
QtDBus.framework QtTest.la
QtDBus.la QtTest_debug.la
QtDBus_debug.la QtWebKit.framework
QtDeclarative.framework QtXml.framework
QtDeclarative.la QtXml.la
QtDeclarative_debug.la QtXmlPatterns.framework
QtDesigner.framework QtXmlPatterns.la
QtDesignerComponents.framework QtXmlPatterns_debug.la
QtGui.framework QtXml_debug.la
QtGui.la libQtCLucene.4.7.3.dylib
QtGui_debug.la libQtCLucene.4.7.dylib
QtHelp.framework libQtCLucene.4.dylib
QtHelp.la libQtCLucene.dylib
QtHelp_debug.la libQtCLucene.la
QtMultimedia.framework libQtCLucene.prl
QtMultimedia.la libQtCLucene_debug.4.7.3.dylib
QtMultimedia_debug.la libQtCLucene_debug.4.7.dylib
QtNetwork.framework libQtCLucene_debug.4.dylib
QtNetwork.la libQtCLucene_debug.dylib
QtNetwork_debug.la libQtCLucene_debug.la
QtOpenGL.framework libQtCLucene_debug.prl
QtOpenGL.la libQtUiTools.a
QtOpenGL_debug.la libQtUiTools.prl
QtScript.framework libQtUiTools_debug.a
QtScript.la libQtUiTools_debug.prl
QtScriptTools.framework phonon.framework
QtScriptTools.la phononexperimental.framework
QtScriptTools_debug.la pkgconfig
QtScript_debug.la
我不是这方面的专家,但看起来我需要一些名为QtOpenGL
的东西,而不仅仅是QtOpenGL.framework
,QtOpenGL.la
,等。
为了获得(可能)缺少的链接,我是否需要在Qt中做一些事情来生成这些文件,或者只是给makefile提供不同的信息,因为它们在其他地方?
答案 0 :(得分:0)
因此链接器正在寻找一个库文件(lib),即一个存档文件。与.a
或.lib
一样。
http://doc.qt.io/qt-4.8/qmake-variable-reference.html#libs
-lgenericLibraryName
命令应查找:
genericLibraryName.a
genericLibraryName.lib
genericLibraryName<num>.lib (where <num> is the highest version that can be found if you are on windows...)
以下是一些可能有助于为Mac静态构建的文档:
https://doc.qt.io/qt-4.8/developing-on-mac.html
https://doc.qt.io/qt-4.8/mac-support.html
https://doc.qt.io/qt-4.8/deployment-mac.html
如果我是你,我会确保我在学校使用相同版本的Qt,从qt网站下载,并确保我可以构建和运行其中一个Qt示例Qt Creator for OSX。
然后我会尝试在Qt Creator中编译学校项目。
希望有所帮助。
答案 1 :(得分:0)
在.pro中你必须放
QT -= gui
在文件的头部,不要忘记包含
#include <Qtcore/QcoreApplication>