add_compile_options¶
为源文件添加编译选项。
add_compile_options(<option> ...)
将选项添加到当前目录及以下目录的 COMPILE_OPTIONS 目录属性。这些选项在编译当前目录及以下目录的目标时使用。
注意
这些选项不用于链接。有关链接的选项,请参阅 add_link_options() 命令。
参数¶
对 add_compile_options 的参数可以使用生成器表达式,语法为 $<...>。有关可用表达式,请参阅 cmake-generator-expressions(7) 手册。有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7) 手册。
选项去重¶
用于目标的最终选项集通过累积当前目标及其依赖项的使用要求的选项来构建。选项集经过去重以避免重复。
Added in version 3.12: 虽然这对单个选项很有益,但去重步骤可能会打断选项组。例如,-option A -option B 会变成 -option A B。可以使用类似 shell 的引号以及 SHELL: 前缀来指定一组选项。该 SHELL: 前缀会被删除,其余的选项字符串将使用 separate_arguments() 命令的 UNIX_COMMAND 模式进行解析。例如,"SHELL:-option A" "SHELL:-option B" 会变成 -option A -option B。
示例¶
由于不同的编译器支持不同的选项,因此通常的做法是在特定于编译器的条件语句中使用此命令。
if (MSVC)
# warning level 4
add_compile_options(/W4)
else()
# additional warnings
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
要设置特定于语言的选项,请使用 $<COMPILE_LANGUAGE> 或 $<COMPILE_LANGUAGE:languages> 生成器表达式。
另请参阅¶
此命令可用于添加任何选项。但是,对于添加预处理器定义和包含目录,建议使用更具体的命令
add_compile_definitions()和include_directories()。命令
target_compile_options()用于添加特定于目标的选项。此命令为所有语言添加编译选项。使用
COMPILE_LANGUAGE生成器表达式可以指定特定于语言的编译选项。源文件属性
COMPILE_OPTIONS用于向单个源文件添加选项。add_link_options()用于添加链接选项。CMAKE_<LANG>_FLAGS和CMAKE_<LANG>_FLAGS_<CONFIG>添加传递给编译器所有调用的语言范围标志。这包括驱动编译和驱动链接的调用。