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