QT + CImg不会在OSX 10.9上构建

时间:2014-01-21 10:27:14

标签: c++ macos qt cimg

我正在接手一个需要使用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,添加库并包含项目文件的路径,但仍然存在同样的问题:(提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

你在建什么?如果你正在构建Qt,那么你有一些局部修改打破了它 - 从新的来源开始。

如果您正在构建一些使用Qt的代码,那么问题出在该代码中,而不是Qt中。这个问题的气味是某些内容定义了一个Bool宏,它干扰了QVariant的代码。

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

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

答案 1 :(得分:0)

X11库(CImg默认使用)定义Bool。 当您使用Qt时,您可能不想使用CImg的显示功能,因此我建议您在编译时通过定义宏cimg_display=0来停用它。 CImg不会尝试包含X11标头,它可以解决您的问题。