我似乎有一个小问题,我正在尝试将 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