CMP0056

警告

此策略的 OLD 行为已在 CMake 4.0 版本中移除。此策略必须通过调用 cmake_minimum_required()cmake_policy() 来设置为 NEW

版本 3.2 中新增。

try_compile() 的源文件签名中遵循链接标志。

命令 try_compile() 的源文件签名会生成一个 CMakeLists.txt 文件,用于将源文件构建成可执行文件。为了像调用项目那样编译源文件,生成的项目会将 CMAKE_<LANG>_FLAGS 变量的值设置为调用项目中的值。在某些情况下,CMAKE_EXE_LINKER_FLAGS 变量的值也可能需要,但在 CMake 3.1 及更低版本中,它并未在生成的项目中设置。CMake 3.2 及更高版本倾向于设置它,以便同时遵循链接器标志和编译器标志。此策略提供了与 3.2 版本之前的行为兼容性。

此策略的 OLD 行为是在生成的测试项目中不设置 CMAKE_EXE_LINKER_FLAGS 变量的值。此策略的 NEW 行为是将测试项目中的 CMAKE_EXE_LINKER_FLAGS 变量的值设置为与调用项目中的值相同。

如果项目代码没有显式设置此策略,用户可以通过在缓存中定义 CMAKE_POLICY_DEFAULT_CMP0056 变量来从命令行设置它。

此策略是在 CMake 3.2 版本中引入的。在 4.0 版本中移除之前,它可以通过 cmake_policy()cmake_minimum_required() 来设置。如果未设置,CMake 默认*不会*发出警告,并使用 OLD 行为。

请参阅 CMAKE_POLICY_WARNING_CMP0056 变量的文档,以控制 CMake 4.0 版本之前的警告。