使用Qt 5.1.1编译第三方框架



我一直很乐意在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

添加它解决了问题。

相关内容

  • 没有找到相关文章

最新更新