0

我正在接管一个需要使用 QT Creator 和 CImg 的项目,但它不会在我的机器上构建。

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

这个错误以及十几个类似的错误,在我构建时不断出现。它来自 Qt Core。

当您使用 cimg 从 windows 平台迁移到 osx 时,是否需要重写一些东西?据我所知,代码应该是可移植的..

我尝试重新安装库,安装 XQuarts,添加库并包含项目文件的路径,但仍然是同样的问题 :( 提前感谢您的帮助!

4

2 回答 2

0

你在建什么?如果您正在构建 Qt,那么您有一些本地修改会破坏它 - 从新资源开始。

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

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

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

于 2014-01-21T18:09:47.760 回答
0

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

于 2014-01-22T08:40:35.567 回答