我正在用一些默认选项编译CMake,第一个是-DCMAKE_CXX_FLAGS=-std=c++11
。用多个-DCMAKE_CXX_FLAGS选项编译CMake
使用CMake的其他编译也抱怨需要C++ 14的警告。
是否有可能有这个标志添加多个选项,例如-DCMAKE_CXX_FLAGS=-std=c++11:c++14
我正在用一些默认选项编译CMake,第一个是-DCMAKE_CXX_FLAGS=-std=c++11
。用多个-DCMAKE_CXX_FLAGS选项编译CMake
使用CMake的其他编译也抱怨需要C++ 14的警告。
是否有可能有这个标志添加多个选项,例如-DCMAKE_CXX_FLAGS=-std=c++11:c++14
不,你不能传递多个选项,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
我被编为第3方案二的依赖,需要C++ 11,其他C++ 14 ,所以根据你的回答,似乎我需要两个cmake版本。 –
为什么不用C++ 14构建第三方程序? – usr1234567
我正在发布的说明中,第一个必须设置C++ 11,第二个需要C++ 14功能。我没有深入了解为什么第一个必须有c + + 11,因此我的问题。我将尝试使用C++ 14,并希望通过使用更高版本来避免不可预见的问题。 thx艺术。 –