My DockerfileはFROM gcc:5
を使用し、apt-get updateを実行し、wget
でCMake v3.9をインストールします。私のトップレベルCMakeLists.txt
はset(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をアップグレードしようとしましたが、それはどちらも役に立たなかった。
私はここで何が欠けていますか?
「」ヘッダーファイルを含めますか? –
関連のないメモで、なぜ共有ポインタ*を参照*に渡すのですか?通常のユースケースは値渡しであるか、「共有」されたことは実際には機能しません。 –
http://idownvotedbecau.se/beingunresponsive –