CMake target_link_options LINKER 语法

Arg*_*ews 4 c++ cmake

从 CMake 3.13 开始,存在target_link_options,它添加​​了“链接步骤的选项”。

该页面底部附近写着:

为了将选项传递给链接器工具,每个编译器驱动程序都有自己的语法。前缀LINKER:,分隔符可用于以可移植的方式指定要传递给链接器工具的选项

有人可以举例说明如何使用target_link_options()助手LINKER:吗?

感谢您的任何帮助!

dns*_*glk 6

这个想法是将所有链接器选项作为一串以逗号分隔的项目,前面加上“LINKER:”。假设我有一组与编译器调用 (gcc) 一起使用的标志:

-Wl,--gc-sections,-Tbootloader.ld,-Map=bootloader.map
Run Code Online (Sandbox Code Playgroud)

然后 cmake 部分应该看起来像。

...
add_executable(bootloader ${SRC})
target_link_options(bootloader PUBLIC "LINKER:--gc-sections,-Tbootloader.ld,-Map=bootloader.map") 
...
Run Code Online (Sandbox Code Playgroud)