2016-06-30 33 views
5

我想讓cmake管理包含「-std = C++ 14」編譯器標誌。按照here所述,使用CMAKE_CXX_STANDARD很容易。這歸結爲,包括以下內容:如何在指定CMAKE_CXX_STANDARD時控制調用編譯器標誌?

set(CMAKE_CXX_STANDARD 14) 
set(CMAKE_CXX_STANDARD_REQUIRED on) 

然而,使用gcc時,這導致包含「-std = GNU ++ 14」,其中包括一些非標準的特徵。有沒有辦法讓cmake在使用CMAKE_CXX_STANDARD而不是「-std = gnu ++ 14」時調用「-std = C++ 14」編譯器標誌?

回答

5

可以使用屬性CXX_EXTENSIONS或全局變量CMAKE_CXX_EXTENSIONS在-std = C++ 1n和-std = gnu ++ 1n之間切換。

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

+1

這就行了......哇......這是CMAKE_CXX_STANDARD前cmake的文檔頁面右側。我原以爲我做過的許多搜索之一會發現這些標誌是相關的。無論如何,感謝您的正確答案! – doc07b5

相關問題