【问题标题】:Qt4 to Qt5 Linking ErrorQt4 到 Qt5 链接错误
【发布时间】: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(平台)。

标签: c++ macos qt cmake


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多