导航

  • 索引
  • 下一页 |
  • 上一页 |
  • CMake 4.3.0 »
  • 文档 »
  • cmake-properties(7) »
  • LINK_LIBRARY_OVERRIDE_<LIBRARY>

LINK_LIBRARY_OVERRIDE_<LIBRARY>¶

在 3.24 版本中添加。

覆盖与 <LIBRARY> 关联的库特性,来自 LINK_LIBRARY 生成器表达式。当在不同的 LINK_LIBRARY 生成器表达式中为 <LIBRARY> 指定不同的特性时,可以使用此功能来解决不兼容的库特性。

当在目标上设置时,此属性保存单个库特性名称,该名称将在链接该目标时应用于 <LIBRARY>。

add_library(lib1 ...)
add_library(lib2 ...)
add_library(lib3 ...)

target_link_libraries(lib1 PUBLIC "$<LINK_LIBRARY:feature1,external>")
target_link_libraries(lib2 PUBLIC "$<LINK_LIBRARY:feature2,lib1>")
target_link_libraries(lib3 PRIVATE lib1 lib2)

# lib1 is associated with both feature2 and no feature. Without any override,
# this would result in a fatal error at generation time for lib3.
# Define an override to resolve the incompatible feature associations.
set_property(TARGET lib3 PROPERTY LINK_LIBRARY_OVERRIDE_lib1 feature2)

# lib1 will now be associated with feature2 instead when linking lib3

也可以使用预定义的 DEFAULT 库特性来覆盖任何特性。这有效地丢弃了该链接项的任何特性,仅针对该目标 (lib3 在此示例中)。

# When linking lib3, discard any library feature for lib1
set_property(TARGET lib3 PROPERTY LINK_LIBRARY_OVERRIDE_lib1 DEFAULT)

有关替代覆盖多个库特性的方法,请参阅 LINK_LIBRARY_OVERRIDE 目标属性。如果同时定义了这两个属性并且为相同的链接项指定了覆盖,则 LINK_LIBRARY_OVERRIDE_<LIBRARY> 优先于 LINK_LIBRARY_OVERRIDE。

LINK_LIBRARY_OVERRIDE_<LIBRARY> 的内容可以使用 生成器 表达式。

有关库特性的更多信息,请参阅 CMAKE_<LANG>_LINK_LIBRARY_USING_<FEATURE> 和 CMAKE_LINK_LIBRARY_USING_<FEATURE> 变量。

上一主题

LINK_LIBRARY_OVERRIDE

下一主题

LINK_OPTIONS

本页

  • 显示源

快速搜索

导航

  • 索引
  • 下一页 |
  • 上一页 |
  • CMake 4.3.0 »
  • 文档 »
  • cmake-properties(7) »
  • LINK_LIBRARY_OVERRIDE_<LIBRARY>
© 版权所有 2000-2026 Kitware, Inc. 及贡献者。使用 Sphinx 8.2.3 创建。