2016-01-20 125 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艺术。 –