2017-12-15 45 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をコンパイルするgcc:5イメージ

/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 gccをアップグレードしようとしましたが、それはどちらも役に立たなかった。

私はここで何が欠けていますか?

+1

」ヘッダーファイルを含めますか? –

+0

関連のないメモで、なぜ共有ポインタ*を参照*に渡すのですか?通常のユースケースは値渡しであるか、「共有」されたことは実際には機能しません。 –

+0

http://idownvotedbecau.se/beingunresponsive –

答えて

0

このページに遭遇する可能性がある人のために、コメントに記載された@ some-programmer-dudeと同じように更新する必要があります。単に<memory>が私の質問に示されたエラーを解決しました。

オリジナルの開発環境が私の​​Dockerイメージと異なっていて、コードが別のコンパイラで書かれていたため、gcc-v5の要件を満たすいくつかの同様の問題(インクルードファイルがありません)を解決しなければなりませんでした。

関連する問題