【发布时间】:2013-09-19 19:49:53
【问题描述】:
我似乎遇到了一个小问题,我正在尝试将 Qt4 应用程序移植到 Qt5,并且一切正常,直到我到达链接部分。我浏览了 QT 迁移指南,并做了一切到它编译的地方,但它不会链接。
它在 ld: library not found for -lQt5Widgets 或其他东西上一直死机,我不确定我是否遗漏了什么或者我想在我的 make 文件中添加一些东西,但是一个基本的 Hello World 应用程序运行良好。
我的 .pro 文件中有基本的东西
CONFIG = qt uic resources thread stl warn_on
QT += core gui xml
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
*-g++ : QMAKE_CXXFLAGS_WARN_ON += -Wno-sign-compare
DEPENDPATH += crypto dialogs export forms import lib translations res widgets
INCLUDEPATH += . lib crypto plugins/interfaces export import dialogs
然后打开一堆调试和创建 PLIST 等的东西,即使删除也不能解决问题,因此它们不相关(您可以在 https://github.com/relgames/keepassx/blob/master/src/src.pro 看到它)
由于某种原因,它试图 -l Qt 框架而不是 -framework 例如它生成
-L/Users/user/Qt/5.1.1/clang_64/lib -lQt5Widgets -lQt5Xml -lQt5Gui -lQt5Core
在链接步骤上,但应该是
-F/Users/user/Qt/5.1.1/clang_64/lib -framework QtWidgets -framework QtXml -framework QtGui -framework QtCore
更改它并通过终端运行它然后工作,但显然这不会工作,因为 Qt 还没有完成它的所有步骤。知道为什么会发生这种情况吗?它似乎像在 Linux 上那样做,而不是在 Mac 上?
我正在尝试在 Qt5 上编译 https://github.com/relgames/keepassx
【问题讨论】:
-
如何运行 qmake?也许您需要指定不同的 mkspec(平台)。