CheckCXXSourceCompiles

一次检查可编译的 C++ 源代码。

check_cxx_source_compiles
check_cxx_source_compiles(<code> <resultVar>
                          [FAIL_REGEX <regex1> [<regex2>...]])

一次检查 <code> 中提供的源代码是否可编译。将结果存储在 <resultVar> 指定的内部缓存变量中,其中布尔值 true 表示成功,布尔值 false 表示失败。

如果提供了 FAIL_REGEX,则通过检查编译器输出中任何内容是否与任何指定正则表达式相匹配来确定是否失败。

在内部,try_compile() 用于编译源代码。如果 CMAKE_TRY_COMPILE_TARGET_TYPE 设置为 EXECUTABLE(默认值),则将源代码编译并链接为可执行程序。如果设置为 STATIC_LIBRARY,则将源代码编译但不会链接。在任何情况下,都必须像往常一样声明所有函数。

另请参阅 check_source_compiles() 以获取更通用的命令语法。

另请参阅 check_source_runs() 以运行已编译的源代码。

可在调用 check_cxx_source_compiles() 之前设置以下任何变量来影响编译和链接命令

CMAKE_REQUIRED_FLAGS

要传递给编译器的附加标志符字符串。字符串必须以空格分隔,;-list 将不起作用。 CMAKE_<LANG>_FLAGS 及其关联的配置特定变量的内容将在 CMAKE_REQUIRED_FLAGS 的内容之前自动添加到编译器命令中。

CMAKE_REQUIRED_DEFINITIONS

格式为 -DFOO-DFOO=bar 的编译器定义的 ;-list。还将自动添加 <resultVar> 指定的名称的定义。

CMAKE_REQUIRED_INCLUDES

;-list 传递给编译器的头搜索路径。这些将是唯一的头搜索路径——将忽略 INCLUDE_DIRECTORIES 目录属性的内容。

CMAKE_REQUIRED_LINK_OPTIONS

从版本 3.14 添加。

;-list 要添加到链接命令中的选项(有关更多详细信息,请参阅 try_compile())。

CMAKE_REQUIRED_LIBRARIES

;-list 要添加到链接命令中的库。这些可以是系统库的名称,也可以是 导入目标(有关更多详细信息,请参阅 try_compile())。

CMAKE_REQUIRED_LINK_DIRECTORIES

从版本 3.31 添加。

;-list 要传递给链接器的库搜索路径(有关更多详细信息,请参阅 try_compile())。

CMAKE_REQUIRED_QUIET

从版本 3.1 添加。

如果此变量计算为布尔真值,将抑制与检查关联的所有状态消息。