在 docker gcc:5 映像中编译 c++11

Compile c++11 in a docker gcc:5 image

我的 Dockerfile 使用 FROM gcc:5,运行 apt-get update 并通过 wget 安装 CMake v3.9。我的顶级 CMakeLists.txtset(CMAKE_CXX_STANDARD 11) 但这似乎并不能说服 gcc 使用 C++11 进行编译,因为我收到以下错误:

/ifeature.hpp:51:42: error: 'shared_ptr' in namespace 'std' does not name a template type
     virtual float compare(const std::shared_ptr<IFeature>& feature) const = 0
                                      ^

我尝试添加 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")libstdc++gnuc++11 等的变体,但编译器无法识别它们。我也试过 add_compile_options(-std=c++11) 无济于事。我也试过 apt-get upgrade gcc 但这也没有帮助。

我在这里错过了什么?

为了将来的参考和任何可能遇到此页面的人的利益,我应该像评论中提到的@some-programmer-dude 一样更新它,简单地包括 <memory> 解决了我显示的错误问题。

鉴于我原来的开发环境与我Docker图像中的不同,并且代码是用不同的编译器编写的,我不得不解决一些类似的问题(缺少包含文件)以满足gcc-v5要求。