注意:我已经尝试过问here(在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>
时发生了错误):
注意:link如果图像显示的太小,则为{{3}}。
编辑:升级到gcc 4.8.1和Qt 5.1.2之后我仍然有错误,这是我从源代码编译的。
答案 0 :(得分:1)
是的,有人(JKSH)在Qt项目论坛上发现了问题(here)。
简而言之:
问题是我写了#define I complex(0.0, 1.0)
,它在qobjectdefs_impl.h中创建了一个名称冲突(其中complex
是std::complex<double>
的typedef)。对于一些(奇怪的)原因,只要我没有在专业文件中写出CONFIG = c + 11,就不会造成任何问题,但是在写完之后却没有。
非常感谢JKSH,以及Greenflow的帮助!
编辑:找到问题的功劳应该从Qt Project Interest邮件列表中找到Thiago Macieira,请参阅评论。