QT CIMG不会在OSX 10.9上构建

QT + CImg will not build on OSX 10.9

本文关键字:构建 OSX CIMG QT      更新时间:2023-10-16

我正在接管一个我需要与QT Creator和CIMG合作的项目,但是它不会在我的机器上构建。

/Users/vikkosmi/Qt/5.2.0/clang_64/lib/QtCore.framework/Headers/qvariant.h:132: error: expected '}'
    Bool = QMetaType::Bool,
    ^

我构建时,这个错误和十几个类似的错误会不断出现。它来自QT核心。

使用CIMG从Windows平台移至OSX时是否需要重写的内容?据我所知,代码应该是便携的。

我试图重新安装库,安装Xquarts,添加库并在项目文件中包含路径,但仍然存在相同的问题:(谢谢您的帮助!

您正在构建什么?如果您要构建QT,那么您将进行一些局部修改,从而从新鲜来源开始。

如果您构建了一些使用QT的代码,则问题在于该代码,而不是QT中。这个问题的气味在于,某些东西定义了Bool宏,该宏会干扰QVariant的代码。

发生这种情况的文件不是 qvariant.h 。这是您的一些.cpp文件 - 查看错误消息,它们将包含诸如"编译yourfile.cpp"之类的内容。在该文件中,您需要将#include <QVariant>作为第一行。这应该暂时解决问题。

您应该在代码中搜索Bool并修复全局名称空间污染。我认为您的代码被打破了,毫无疑问。

X11库(默认情况下由CIMG使用)定义了Bool。当您使用QT时,您可能不想使用CIMG的显示功能,因此我建议您在编译时通过定义宏cimg_display=0将其停用。CIMG不会尝试包括X11标头,并且可以解决您的问题。