如何使用CMake激活MinGW上的c ++ 11支持?

时间:2013-02-03 15:15:04

标签: c++ c++11 cmake mingw

我已经安装了最新版本的MinGW / MSYS环境。现在我尝试激活c ++ 11标准支持。我已添加到我的cmake脚本中:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")

如果我尝试构建一个简单的测试。我得到了以下编译失败:

error: 'shared_ptr' is not a member of 'std'

在我看来,没有设置c ++ 11支持。如果我从我的代码中删除std :: shared_ptr声明并尝试编译chrono库的一些代码它可以工作。这让我很困惑。 为什么支持某些c ++ 11库,但像shared_ptr这样的核心元素会失败?

我是否需要做一些额外的事情才能启用智能指针,或者他们不在那里?

1 个答案:

答案 0 :(得分:2)

您可以/也应该(也)使用-std=c++0x以便不启用g ++扩展。

确保#include <memory>