2017-12-15 2 views
-1

My Dockerfile은 FROM gcc:5을 사용하고 apt-get update를 실행하고 wget을 통해 CMake v3.9를 설치합니다. 내 최상위 CMakeLists.txtset(CMAKE_CXX_STANDARD 11)을 가지고 있지만 그 C++ (11) 사용하여 컴파일하려면 gcc를 설득하지 않는 것 나는 다음과 같은 오류 얻을 같이docker에서 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 
            ^

내가 libstdc++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")의 변화를 추가하는 시도, gnuc++11 등을하지만, 컴파일러는이를 인식하지 못합니다. 나는 또한 쓸데없는 add_compile_options(-std=c++11)을 시도했다. 나 또한 apt-get upgrade gcc를 시도했지만 그 역시 도움이되지 못했다.

무엇이 여기에 있습니까?

+1

''헤더 파일을 포함 하시겠습니까? –

+0

관련없는 참고 사항에서 참조 *로 공유 포인터 *를 전달하는 이유는 무엇입니까? 일반적인 유스 케이스는 값으로 전달하거나 전체 "공유"된 것이 실제로 작동하지 않는다. –

+0

http://idownvotedbecau.se/beingunresponsive –

답변

0

이 페이지가 표시 될 수있는 사람이라면 나중에 참조 할 수 있도록 간단히 <memory>을 포함한 내 의견에 언급 된 @ some-programmer-dude를 업데이트해야합니다.

내 독창적 인 개발 환경이 Docker 이미지와 다르고 코드가 다른 컴파일러로 작성되었다는 것을 감안할 때 gcc-v5 요구 사항을 만족시키는 몇 가지 유사한 문제 (포함 파일 누락)를 해결해야했습니다.