我一直很乐意在Qt 5.0中使用第三方框架编译项目。升级到Qt 5.1后,链接器无法再找到第三方框架。
这里有一个Qt错误报告,但我看到该项目已经关闭。报告底部有一条评论:-
要针对/Library/Frameworks中的框架进行构建和链接(以下内容应添加到.pro文件中):
QMAKE_OBJECTIVE_CFLAGS += -F/Library/Frameworks
QMAKE_LFLAGS += -F/Library/Frameworks
QMAKE_LINK += -framework Foo
当我这样做时,它没有任何效果。此外,第三方框架是一个C++库,因此使用QMAKE_OBECTIVE_FLAGS将没有帮助。我试着用这个来代替QMAKE_CXXFLAGS,但还是失败了。
此外,当将QMAKE_OBECTIVE_flags和QMAKE_LINK添加到.pro文件时,Qt Creator不会将它们高亮显示为已知的编译器标志。
有人知道如何在不恢复到Qt 5.0的情况下解决这个问题吗?
您有点不清楚自己到底在做什么,以及它是如何失败的。
如果您试图使用.cpp文件中的框架,您确实还需要设置QMAKE_CXXFLAGS += -F/Library/Frameworks
,可能还有QMAKE_CFLAGS
(错误报告中的示例假设该框架公开了Objective-C绑定。我会更正这一点)
尝试一下,如果仍然失败,请使用日志和方法重新打开错误报告。
(Qt Creator缺失的亮点不相关,它们仍然是qmake变量。)
这里的问题是由于.pro文件在使用Qt 5.0时已经引用了第三方库,如下所示:-
QMAKE_LFLAGS += -F /Library/Frameworks/otherlibrary.framework/
LIBS += -framework otherlibrary
我没有意识到,尽管QMAKE_LFLAGS包括到特定框架的路径,但它也需要到框架根的路径:-
QMAKE_LFLAGS += -F/Library/Frameworks
添加它解决了问题。