1

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

4

1 回答 1

0

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

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

于 2014-10-31T11:05:57.613 回答