2015-06-11 12 views
5

Jestem nowy w cmake, a ja budowałem z nim kod C++ 11 (w szczególności zestaw aliasów szablonu.) Chcę użyć własności CXX_STANDARD, aby, mam nadzieję, obejść wszystkie platformy i problemy wprowadzone przez dodanie -std = C++ 11 do CXXFLAGS, które pracowały dla mnie wcześniej:Cmake nie ustawi standardu kompilatora na C++ 11?

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

Ale kiedy zmienić na

set_property(GLOBAL PROPERTY CXX_STANDARD 11) 
set_property(GLOBAL PROPERTY CXX_STANDARD_REQUIRED true) 

cmake nie mówi kompilatora użyć C++ 11. Co robię źle z tym ostatnim kodem?

+0

Może być [to] (http://stackoverflow.com/questions/10984442/how-to-detect-c11-support-of-a-compiler-withcmcm) pomoże Ci? – ha9u63ar

+0

Dzięki, już to zauważyłem, ale podczas dokładniejszej kontroli zdałem sobie sprawę, że mniej lub bardziej poprawny kod, który stworzyłem powyżej, wymaga przynajmniej wersji cmake 3.1, w której miałem wersję 2.8. Uaktualniłem i działa dobrze. – ralian

Odpowiedz

6

Nie zaktualizowałem CMake do najnowszej wersji ... Powinienem był to zrobić przed opublikowaniem pytania. Powyższy kod działa tylko w wersji> 3.1.

+1

Proszę oznaczyć to jako odpowiedź na to pytanie. –

Powiązane problemy