2016-01-20 1708 views
0

我正在用一些默認選項編譯CMake,第一個是-DCMAKE_CXX_FLAGS=-std=c++11用多個-DCMAKE_CXX_FLAGS選項編譯CMake

使用CMake的其他編譯也抱怨需要C++ 14的警告。

是否有可能有這個標誌添加多個選項,例如-DCMAKE_CXX_FLAGS=-std=c++11:c++14

回答

0

不,你不能傳遞多個選項,C++的標誌。
無論如何,你的例子會有什麼意義?使用C++ 11或C++ 14,無論可用?如果兩者都適用,請使用較高的一個?無論您使用C++ 11還是C++ 14功能,都需要編譯器至少處於正確的模式。

如果您爲自己的項目編寫自己的CMakeLists.txt,則可以使用CMake來檢查支持的C++ 1/C++ 14功能或使用can try accepted flags and choose the most recent one
對於近期CMake的版本中,您可以通過CXX_STANDARD properte設置每個目標所需要的C++模式,請參閱https://cmake.org/cmake/help/v3.4/prop_tgt/CXX_STANDARD.html

+0

我被編爲第3方案二的依賴,需要C++ 11,其他C++ 14 ,所以根據你的回答,似乎我需要兩個cmake版本。 –

+0

爲什麼不用C++ 14構建第三方程序? – usr1234567

+0

我正在發佈的說明中,第一個必須設置C++ 11,第二個需要C++ 14功能。我沒有深入瞭解爲什麼第一個必須有c + + 11,因此我的問題。我將嘗試使用C++ 14,並希望通過使用更高版本來避免不可預見的問題。 thx藝術。 –