使用MinGW的Qt Creator找不到std :: shared_ptr

时间:2013-06-11 21:39:00

标签: c++ c++11 qt-creator shared-ptr

我刚从Ubuntu软件中心在Ubuntu RR上安装了QtCreator(使用MinGW)。我有一些使用C ++ 11功能的代码,具体来说:

强类型枚举 - 即:枚举类颜色{RED,GREEN,BLUE}

std :: shared_ptr类型,包含在memory.h中。

此代码根本不使用Qt。它是一个简单的控制台应用程序,它使用CodeBlocks / MinGW和CodeLite / MinGW编译并运行良好,并启用了C ++ 11编译器指令。

当我尝试使用QtCreator中的相同代码(QtCreator中的简单C ++控制台项目)构建项目时,我收到警告,强类型枚举需要C ++ 11,默认情况下启用。并且编译器根本无法识别shared_ptr类型 - 无法编译。

有什么问题?我需要设置另一个编译器选项吗?错误消息似乎表明默认情况下启用了C ++ 11。别的什么?我是QtCreator的新手 - 甚至无法找到设置编译器标志的位置并删除有关枚举的警告。那些设置在哪里?

最重要的是:我需要做什么才能使编译器识别出std :: shared_ptr类型?

1 个答案:

答案 0 :(得分:2)

正确的包含是

#include <memory>

你应该添加

QMAKE_CXXFLAGS += -std=c++11

在你的.pro文件中使c ++ 11工作。

编辑:对于早于gcc 4.7的编译器,您应该使用该标志的c++0x值。