我很高兴在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?
答案 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
添加修复问题。