找不到-lQtCore的库

时间:2013-07-22 01:25:54

标签: macos qt makefile qt4

我正在尝试将一个大型项目从学校编译到我自己的机器上(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.frameworkQtOpenGL.la,等。

为了获得(可能)缺少的链接,我是否需要在Qt中做一些事情来生成这些文件,或者只是给makefile提供不同的信息,因为它们在其他地方?

2 个答案:

答案 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

不编辑Makefile ......

如果我是你,我会确保我在学校使用相同版本的Qt,从qt网站下载,并确保我可以构建和运行其中一个Qt示例Qt Creator for OSX。

然后我会尝试在Qt Creator中编译学校项目。

希望有所帮助。

答案 1 :(得分:0)

在.pro中你必须放

QT  -= gui 

在文件的头部,不要忘记包含

#include <Qtcore/QcoreApplication>