-1

我的 Dockerfile 使用FROM gcc:5、运行 apt-get update 并通过wget. 我的顶级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
                                      ^

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

我在这里想念什么?

4

1 回答 1

0

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

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

于 2017-12-15T10:42:10.113 回答