0

我一直很高兴在 Qt 5.0 中使用 3rd 方框架编译项目。升级到 Qt 5.1 后,链接器无法再找到第 3 方框架。

这里有一个 Qt 错误报告,但我看到该项目已关闭。报告底部有一条评论指出:-

在 /Library/Frameworks 中构建和链接框架(应将以下内容添加到 .pro 文件中):

QMAKE_OBJECTIVE_CFLAGS += -F/Library/Frameworks
QMAKE_LFLAGS += -F/Library/Frameworks
QMAKE_LINK += -framework Foo

当我这样做时,它没有效果。此外,第 3 方框架是 C++ 库,因此使用 QMAKE_OBJECTIVE_CFLAGS 将无济于事。我尝试用它代替 QMAKE_CXXFLAGS,但它仍然失败。

此外,当将 QMAKE_OBJECTIVE_CFLAGS 和 QMAKE_LINK 添加到 .pro 文件时,Qt Creator 不会将它们突出显示为已知的编译器标志。

有谁知道如何在不恢复到 Qt 5.0 的情况下解决这个问题?

4

2 回答 2

1

你有点不清楚你到底在做什么,以及它是如何失败的。

如果您尝试使用 .cpp 文件中的框架,则确实需要 set QMAKE_CXXFLAGS += -F/Library/Frameworks,并且可能还需要QMAKE_CFLAGS(错误报告中的示例假设框架公开了 Objective-C 绑定。我会更正)

试试这个,如果仍然失败,重新打开带有日志和重现方法的错误报告。

(Qt Creator 缺少的亮点不相关,它们仍然是 qmake 变量。)

于 2013-09-09T15:13:40.770 回答
0

这里的问题是由于 .pro 文件在使用 Qt 5.0 时已经引用了 3rd 方库,如下所示:-

QMAKE_LFLAGS += -F /Library/Frameworks/otherlibrary.framework/
LIBS += -framework otherlibrary

我没有意识到虽然 QMAKE_LFLAGS 包含了特定框架的路径,但它还需要框架根目录的路径:-

QMAKE_LFLAGS += -F/Library/Frameworks

添加解决了这个问题。

于 2013-09-10T09:03:27.530 回答