使用Qt 5.1.1编译第三方框架

时间:2013-09-03 10:55:15

标签: macos qt linker clang qt5

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

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

  

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

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

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

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

有没有人知道如何解决这个问题,而不回复到Qt 5.0?

2 个答案:

答案 0 :(得分:1)

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

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

尝试此操作,并使用日志重新打开错误报告,如果仍然失败则重现方法。

(Qt Creator缺失的亮点不相关,它们都是qmake变量。)

答案 1 :(得分:0)

这里的问题是因为.pro文件在使用Qt 5.0时已经引用了第三方库,如下所示: -

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

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

QMAKE_LFLAGS += -F/Library/Frameworks

添加修复问题。