1

我正在尝试将学校的一个大型项目编译到我自己的机器上(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 提供不同的信息,因为它们在其他地方?

4

2 回答 2

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 Creator 中构建和运行其中一个 Qt 示例操作系统。

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

希望有帮助。

于 2013-07-22T03:10:20.030 回答
0

在 .pro 你必须把

QT  -= gui 

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

#include <Qtcore/QcoreApplication>
于 2013-07-22T12:12:29.443 回答