Wenn ich versuche, ein von CMake generiertes Makefile auszuführen, um mein Programm zu kompilieren, wird der Fehler angezeigt
Für Schleifen basierende Bereiche werden im C ++ 98-Modus nicht unterstützt.
Ich habe versucht add_definitions(-std=c++0x)
, meine zu ergänzen CMakeLists.txt
, aber es hat nicht geholfen.
Ich habe es auch versucht:
if(CMAKE_COMPILER_IS_GNUCXX)
add_definitions(-std=gnu++0x)
endif()
Wenn ich das tue g++ --version
, bekomme ich:
g ++ (Ubuntu / Linaro 4.6.1-9ubuntu3) 4.6.1
Ich habe es auch versucht SET(CMAKE_CXX_FLAGS "-std=c++0x")
, was auch nicht funktioniert.
Ich verstehe nicht, wie ich C ++ 11-Funktionen mit CMake aktivieren kann.
set(CMAKE_CXX_STANDARD 11)
(vor dem Definieren des Ziels) ist der beste Weg.
CXX_STANDARD
dies unter MSVC nicht funktioniert. Sie müssen also grundsätzlich darauf zurückgreifen, target_compile_features
wenn Sie etwas möchten, das plattformübergreifend funktioniert.
SET(CMAKE_CXX_FLAGS "-std=c++0x")
funktioniert gut für mich, daher gibt es wahrscheinlich irgendwo anders ein Problem in der CMakeLists-Datei. Stellen Sie sicher, dass Sie den Inhalt von CMAKE_CXX_FLAGS später nicht versehentlich überschreiben.