Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt 5和C++;11(qobjectdefs_impl.h未编译)_Qt_C++11_Qt5 - Fatal编程技术网

Qt 5和C++;11(qobjectdefs_impl.h未编译)

Qt 5和C++;11(qobjectdefs_impl.h未编译),qt,c++11,qt5,Qt,C++11,Qt5,注:我曾试着问过这个问题(在Qt项目论坛上),但暂时没有用,所以我在这里试试运气 我使用的是Qt5.0.1(在装有Ubuntu 13.04的笔记本电脑上),编译器是GCC4.7.3(我使用的是QtCreator 2.7.0) 为了让C++11正常工作,似乎只需将以下行添加到项目的.pro文件中即可(或者至少应该是这样): 然而,当我这样做的时候,我在编译文件qobjectdefs_impl.h时会遇到大量错误 有人知道如何解决这个问题吗?提前谢谢 编辑:这是一个屏幕截图,您可以看到错误的样子(显

注:我曾试着问过这个问题(在Qt项目论坛上),但暂时没有用,所以我在这里试试运气

我使用的是Qt5.0.1(在装有Ubuntu 13.04的笔记本电脑上),编译器是GCC4.7.3(我使用的是QtCreator 2.7.0)

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

然而,当我这样做的时候,我在编译文件qobjectdefs_impl.h时会遇到大量错误

有人知道如何解决这个问题吗?提前谢谢

编辑:这是一个屏幕截图,您可以看到错误的样子(显然,错误发生在我执行
#include
)时):

注意:如果图片显示的太小,请点击图片

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

耶,有人(JKSH)在Qt项目论坛()上发现了问题所在

简言之: 问题是我在某个地方写了
#define I complex(0.0,1.0)
,这在qobjectdefs_impl.h中产生了名称冲突(其中
complex
std::complex
的类型定义)。出于某种(奇怪的)原因,只要我没有在pro文件中编写CONFIG=c+11,就不会引起任何问题,但在编写之后就没有了

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


编辑:从Qt项目兴趣邮件列表中找到问题的积分应该归Thiago Macieira,请参阅评论。

Hmm,我可以理解您没有得到答案。我刚刚尝试用GCC4.8和QT5.1.1来委派构造函数。工作起来很有魅力。因此,要么它是Qt5.0.1中的一个bug,这意味着没有人关心这个bug,因为这个bug已经被修复了,要么它是您的设置中的一个bug。在这种情况下,几乎不可能帮助您。我想我可以升级到GCC4.8和QT5.1.1吗?(我希望这很容易)。注意:我会添加一个屏幕截图,这样你就可以看到错误的样子。我刚刚开始了一个小项目,添加了CONFIG+=c++11并创建了一个委托构造函数。这就是我所能做的。至少我们知道,当您升级到GCC4.8和Qt5.1.1时,问题仍然存在,这不是Qt或gcc。顺便提一下我自己编译了Qt。带有c++11标志。但我不知道这是否会对使用lib的程序产生影响,好吧,在我看到你的截图后,我可以推测更多:我认为你的Qt版本是在没有c++11支持的情况下编译的。这是没有问题的。某些功能当时不可用。现在为您的程序激活c++11。这可能会导致编译器尝试访问Qt中不可用的函数。但正如我所说:纯投机。我在Qt兴趣邮件列表上问过。很有可能得到答案,不管问题是否是Qt,它是在没有C++11支持的情况下编译的development@qt-project.org邮件列表。你说得很对,我刚刚意识到(JKSH在Qt项目线程中这样说)。所以,伟大的团队合作和向蒂亚戈·马切拉致敬,我印象深刻。
CONFIG += c++11