add_compile_options¶
在源文件的编译中添加选项。
add_compile_options(<option> ...)
向 COMPILE_OPTIONS
目录属性添加选项。这些选项在从当前目录及以下目录编译目标时使用。
注意
这些选项在链接时未使用。有关这方面内容,请参阅 add_link_options()
命令。
参数¶
对 add_compile_options
的参数可以使用带语法 $<...>
的生成器表达式。有关可用的表达式,请参阅 cmake-generator-expressions(7)
手册。有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7)
手册。
选项去重¶
用于目标的最终选项集是通过累积来自当前目标的选项及其依赖项的使用要求而构建的。为了避免重复,选项集已去重。
在 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>
添加语言范围标志,该标志传递到编译器的所有调用。这包括驱动编译和链接的调用。