0

注意:我曾尝试在这里(在 Qt 项目论坛上)问这个问题,但目前无济于事,所以我在这里试试运气。

我正在使用 Qt 5.0.1(在装有 Ubuntu 13.04 的笔记本电脑上),编译器是 gcc 4.7.3(我正在使用 Qt Creator 2.7.0)。

为了让 C++11 正常工作,似乎只需将以下行添加到项目的 .pro 文件中就可以了(或者至少应该这样做):

CONFIG += c++11

但是,当我这样做时,编译时文件 qobjectdefs_impl.h 中会出现大量错误。

有谁知道如何解决这个问题?提前致谢!

编辑:这是一个屏幕截图,以便您可以看到错误的样子(显然当我这样做时会发生错误#include <QColor>): 在此处输入图像描述

注意:如果此处显示太小,则链接到图像。

编辑:升级到我从源代码编译的 gcc 4.8.1 和 Qt 5.1.2 后,我仍然有错误。

4

1 回答 1

1

是的,有人(JKSH)在 Qt 项目论坛(这里)上发现了问题所在。

简而言之:问题是我在某处写过#define I complex(0.0, 1.0),这在 qobjectdefs_impl.h 中产生了名称冲突(其中complex的 typedef 是std::complex<double>)。出于某种(奇怪的)原因,只要我没有在 pro 文件中写 CONFIG = c+11 就不会导致任何问题,但在写完之后就没有了。

非常感谢 JKSH,也感谢 Greenflow 的帮助!

编辑:发现问题的功劳应该来自 Qt Project Interest 邮件列表中的 Thiago Macieira,请参阅评论。

于 2013-08-15T06:15:41.927 回答