2016-06-30 5 views
5

Chciałbym, aby cmake zarządzał włączeniem flagi kompilatora "-std = C++ 14". Jest to łatwe do wykonania przy użyciu CMAKE_CXX_STANDARD zgodnie z opisem here. To sprowadza się do tego między innymi:Jak kontrolować flagę kompilatora wywoływaną podczas określania CMAKE_CXX_STANDARD?

set(CMAKE_CXX_STANDARD 14) 
set(CMAKE_CXX_STANDARD_REQUIRED on) 

Jednak przy użyciu gcc, powoduje włączenie „-std = gnu ++ 14”, która zawiera kilka niestandardowych funkcji. Czy istnieje sposób, aby cmake wywoływał flagę kompilatora "-std = C++ 14" podczas używania CMAKE_CXX_STANDARD zamiast "-std = gnu ++ 14"?

Odpowiedz

5

Możesz użyć właściwości CXX_EXTENSIONS lub globalnej zmiennej CMAKE_CXX_EXTENSIONS, aby przełączać się pomiędzy -std = C++ 1n a -std = gnu ++ 1n.

https://cmake.org/cmake/help/v3.1/prop_tgt/CXX_EXTENSIONS.html

+1

To prawda ... i wow ... to jest po prawej stronie dokumentacji cmake przed CMAKE_CXX_STANDARD. Pomyślałbym, że jedno z wielu poszukiwań odkryłoby, że te flagi są powiązane. W każdym razie, dzięki za właściwą odpowiedź! – doc07b5

Powiązane problemy