导航

  • 索引
  • 下一页 |
  • 上一页 |
  • CMake »
  • 3.26.4 Documentation »
  • cmake 命令(7) »
  • 添加链接选项

添加链接选项¶

在 3.13 版本加入.

将选项添加到当前目录和调用此命令后添加的以下目录中的可执行文件、共享库或模块库目标的链接步骤。

add_link_options(<option> ...)

此命令可用于添加任何链接选项,但存在用于添加库的替代命令( target_link_libraries() 或 link_libraries())。请参阅 directory 和 target LINK_OPTIONS 属性的文档。

备注

此命令不能用于为静态库目标添加选项,因为它们不使用链接器。要添加存档器或 MSVC 库管理器标志,请参阅 STATIC_LIBRARY_OPTIONS 目标属性。

add_link_options 的参数可以使用语法为“$<...>”的生成器表达式。请参阅 cmake-generator-expressions(7) 手册了解可用的表达式。 |更多_另见|

主机和设备特定链接选项¶

在 3.18 版本加入: 当涉及设备链接步骤时,它由 CUDA_SEPARABLE_COMPILATION 和 CUDA_RESOLVE_DEVICE_SYMBOLS 属性和策略 CMP0105 控制,原始选项将被传递到主机和设备链接步骤(包装在“-Xcompiler”或设备链接的等效项中)。用 $<DEVICE_LINK:...> 生成器表达式包装的选项将仅用于设备链接步骤。用 $<HOST_LINK:...> 生成器表达式包装的选项将仅用于主机链接步骤。

选项重复数据删除¶

用于目标的最终选项集是通过累积当前目标的选项及其依赖项的使用要求而构建的。对选项集进行去重以避免重复。

在 3.12 版本加入: 虽然对单个选项有利,但重复数据删除步骤可以分解选项组。例如,“-option A -option B”变为“-option A B”。可以使用类似 shell 的引号和 SHELL: 前缀来指定一组选项。 SHELL: 前缀被删除,选项字符串的其余部分使用 separate_arguments() UNIX_COMMAND 模式进行解析。例如,"SHELL:-option A" "SHELL:-option B" 变为 -option A -option B。

处理编译器驱动程序差异¶

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

例如,"LINKER:-z,defs" 变成``-Xlinker -z -Xlinker defs`` 对于``Clang`` 和``-Wl,-z,defs`` 对于``GNU GCC ``。

LINKER: 前缀可以指定为 SHELL: 前缀表达式的一部分。

作为一种替代语法,LINKER: 前缀支持使用``SHELL:`` 前缀和空格作为分隔符的参数规范。前面的例子变成了``"LINKER:SHELL:-z defs"``。

备注

不支持在 LINKER: 前缀以外的任何地方指定 SHELL: 前缀。

也可以看看¶

  • link_libraries()

  • target_link_libraries()

  • target_link_options()

目录

  • 添加链接选项
    • 主机和设备特定链接选项
    • 选项重复数据删除
    • 处理编译器驱动程序差异
    • 也可以看看

上一主题

添加_库

下一主题

添加子目录

本页

  • 显示源代码

快速搜索

导航

  • 索引
  • 下一页 |
  • 上一页 |
  • CMake »
  • 3.26.4 Documentation »
  • cmake 命令(7) »
  • 添加链接选项
© 版权所有 2000-2023 Kitware, Inc. and Contributors. 由 Sphinx 6.2.1创建。