导航

  • 索引
  • 下一页 |
  • 上一页 |
  • CMake 4.3.0 »
  • 文档 »
  • cmake-properties(7) »
  • LINK_LIBRARIES

LINK_LIBRARIES¶

直接链接依赖项列表。

此属性指定用于链接的库或目标的列表。除了接受来自 target_link_libraries() 命令的值外,还可以使用 set_property() 命令直接在任何目标上设置值。

生成器使用此属性的值来构建目标的链接规则。首先链接直接链接依赖项,随后是来自直接依赖项的 INTERFACE_LINK_LIBRARIES 属性传递闭包中的间接依赖项。请参阅策略 CMP0022。

LINK_LIBRARIES 的内容可以使用语法为 $<...> 的 生成器表达式。策略 CMP0131 会影响此属性的 LINK_ONLY 生成器表达式的行为。

有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7) 手册。

注意

调用 target_link_libraries(<target> ...) 可能会更新 <target> 上的此属性。如果 <target> 不是在调用所在的同一目录中创建的,则 target_link_libraries() 会将每个条目包装为 ::@(directory-id);...;::@ 形式,其中 ::@ 是字面量,而 (directory-id) 未指定。这告诉生成器必须在调用者的作用域中查找指定的库,而不是在创建 <target> 的作用域中查找。有效的目录 ID 会在 install(EXPORT) 和 export() 命令导出时被移除。

在高级用例中,由此属性指定的直接链接依赖项列表可能会根据依赖项的使用要求进行更新。请参阅 INTERFACE_LINK_LIBRARIES_DIRECT 和 INTERFACE_LINK_LIBRARIES_DIRECT_EXCLUDE 目标属性。

有关 CMake 如何在链接器命令行上对直接链接依赖项进行排序的详细信息,请参阅 CMAKE_LINK_LIBRARIES_STRATEGY 变量和相应的 LINK_LIBRARIES_STRATEGY 目标属性。

处理编译器驱动器差异¶

4.0 版本新增。

要将选项传递给链接器工具,每个编译器驱动程序都有其自己的语法。可以使用 LINKER: 前缀和 , 分隔符以可移植的方式指定要传递给链接器工具的选项。LINKER: 会被替换为适当的驱动程序选项,, 会被替换为适当的驱动程序分隔符。驱动程序前缀和驱动程序分隔符由 CMAKE_<LANG>_LINKER_WRAPPER_FLAG 和 CMAKE_<LANG>_LINKER_WRAPPER_FLAG_SEP 变量的值给出。

例如,对于 Clang,"LINKER:-z,defs" 会变成 -Xlinker -z -Xlinker defs;对于 GNU GCC,则会变成 -Wl,-z,defs。

LINKER: 前缀支持使用 SHELL: 前缀和空格作为分隔符来指定参数,作为一种替代语法。前面的示例将变为 "LINKER:SHELL:-z defs"。

注意

不支持在 LINKER: 前缀的开头以外的任何位置指定 SHELL: 前缀。

目录

  • LINK_LIBRARIES
    • 处理编译器驱动差异

上一主题

LINK_INTERFACE_MULTIPLICITY_<CONFIG>

下一主题

LINK_LIBRARIES_ONLY_TARGETS

本页

  • 显示源

快速搜索

导航

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