导航

  • 索引
  • 下一页 |
  • 上一页 |
  • CMake 4.4.0 »
  • 文档 »
  • cmake-commands(7) »
  • target_link_directories

target_link_directories¶

3.13 版本新增。

为目标添加链接目录。

target_link_directories(<target> [BEFORE]
  {INTERFACE|PUBLIC|PRIVATE} <dir>...
  [{INTERFACE|PUBLIC|PRIVATE} <dir>...]...)

指定链接器在链接给定目标时应搜索库的路径。每个条目可以是绝对路径或相对路径,后者将被解释为相对于当前源目录。这些条目将被添加到链接命令中。

名为 <target> 的目标必须是由 add_executable() 或 add_library() 等命令创建的目标,并且不能是 别名目标。

INTERFACE、PUBLIC 和 PRIVATE 关键字用于指定其后条目的作用域。PRIVATE 和 PUBLIC 条目将填充 <target> 的 LINK_DIRECTORIES 属性。PUBLIC 和 INTERFACE 条目将填充 <target> 的 INTERFACE_LINK_DIRECTORIES 属性(导入目标 (IMPORTED targets) 仅支持 INTERFACE 条目)。每个条目指定一个链接目录,并在添加到相关属性之前,必要时会转换为绝对路径。对同一个 <target> 的重复调用会按调用顺序追加条目。

如果指定了 BEFORE,内容将被预置到相关属性中,而不是追加。

target_link_directories 的参数可以使用语法为 $<...> 的生成器表达式。请参阅 cmake-generator-expressions(7) 手册了解可用表达式。有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7) 手册。

注意

此命令很少需要使用,在有其他选择时应尽量避免。在可能的情况下,优先向库传递完整的绝对路径,因为这能确保始终链接到正确的库。find_library() 命令提供完整路径,通常可以直接用于 target_link_libraries() 调用中。可能需要库搜索路径的情况包括:

  • 像 Xcode 这样的项目生成器,用户可以在构建时切换目标架构,但由于库的完整路径仅提供一种架构(即它不是通用二进制文件),因此无法使用完整路径。

  • 库本身可能拥有其他私有库依赖项,这些依赖项期望通过 RPATH 机制被找到,但某些链接器无法完全解码这些路径(例如,由于存在像 $ORIGIN 这样的内容)。

另请参阅¶

  • link_directories()

  • target_compile_definitions()

  • target_compile_features()

  • target_compile_options()

  • target_include_directories()

  • target_link_libraries()

  • target_link_options()

  • target_precompile_headers()

  • target_sources()

目录

  • target_link_directories
    • 另请参阅

上一主题

target_include_directories

下一主题

target_link_libraries

本页

  • 显示源

快速搜索

导航

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