CMakeで生成されたmakefileを実行してプログラムをコンパイルしようとすると、次のエラーが発生します。
範囲ベースのforループは、C ++ 98モードではサポートされていません。
にを追加add_definitions(-std=c++0x)
してみましたがCMakeLists.txt
、効果がありませんでした。
私もこれを試しました:
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-std=gnu++0x)
endif()
私がするときg++ --version
、私は得ます:
g ++(Ubuntu / Linaro 4.6.1-9ubuntu3)4.6.1
私も試しましたがSET(CMAKE_CXX_FLAGS "-std=c++0x")
、これも機能しません。
CMakeを使用してC ++ 11の機能をアクティブ化する方法がわかりません。
set(CMAKE_CXX_STANDARD 11)
(ターゲットを定義する前)が最善の方法です。
CXX_STANDARD
はMSVCでは機能しないので、target_compile_features
クロスプラットフォームで機能するものが必要な場合は基本的にフォールバックする必要があることに注意してください。
SET(CMAKE_CXX_FLAGS "-std=c++0x")
私のために罰金を動作しますので、CMakeListsファイル内のどこかに問題がある可能性があります。後で誤ってCMAKE_CXX_FLAGSの内容を上書きしないようにしてください。