在C++中,使用CMake进行编译时,可以通过以下方法设置编译选项:
在CMakeLists.txt
文件中直接设置编译选项。例如,要设置C++标准为c++11
,可以在CMakeLists.txt
文件中的任意位置添加以下代码:
set(CMAKE_CXX_STANDARD 11)
类似地,可以设置其他编译选项,如优化级别、调试信息等。例如,要将优化级别设置为-O2
,可以添加以下代码:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
在命令行中使用-DCMAKE_CXX_FLAGS
参数传递编译选项。例如,要将C++标准设置为c++11
并将优化级别设置为-O2
,可以在命令行中执行以下命令:
cmake -DCMAKE_CXX_STANDARD=11 -DCMAKE_CXX_FLAGS="-O2" ..
请注意,这种方法可能会覆盖在CMakeLists.txt
文件中设置的编译选项。因此,建议首先在CMakeLists.txt
文件中设置编译选项,然后在需要时使用命令行参数进行覆盖。
使用target_compile_options
命令为特定目标设置编译选项。例如,要为名为my_target
的目标设置C++标准为c++11
和优化级别为-O2
,可以在CMakeLists.txt
文件中添加以下代码:
add_executable(my_target main.cpp)
target_compile_options(my_target PRIVATE -std=c++11 -O2)
使用此方法,可以为不同的目标设置不同的编译选项。