Qt4到Qt5链接错误

时间:2013-09-19 19:49:54

标签: c++ macos qt cmake

我似乎遇到了一个小问题,我正在尝试将Qt4应用程序移植到Qt5,一切正常,直到我到达链接部分。我浏览了QT迁移指南,并完成了编译的所有内容,但它不会链接。

它继续死于ld:找不到-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

1 个答案:

答案 0 :(得分:0)

我尝试将其更新为qt5但失败了。几乎所有事情都完成了,除了x11EventFilter。 我失败的尝试可以在这里找到https://github.com/relgames/keepassx/tree/qt5

如果您只需要构建和运行,请使用qmake-qt4&& make(先清理目录)。