You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

set_target_properties配置多个--wrap函数链接报错如何解决

问题原因

你的CMake配置中LINK_FLAGS的-Wl,参数后存在多余空格,导致GCC将后续的--wrap参数识别为GCC自身的编译选项,而非传递给链接器的参数。GCC本身没有--wrap相关选项,该选项仅属于GNU链接器ld,因此触发无法识别选项的报错。
-Wl,前缀的语法规则为:前缀与后续链接器参数之间不能有空格,多个链接器参数之间用逗号分隔,同样不能插入空格。你的写法中逗号后加了空格,直接破坏了参数传递规则。

修复方案

方案1:直接修改原有写法

将set_target_properties行的所有多余空格删除即可:

set_target_properties(beTheLight-unit-tests PROPERTIES LINK_FLAGS "-Wl,--wrap=get_rx_dali_flag,--wrap=set_led_frequency,--wrap=application_process")

方案2:使用更规范的现代CMake写法

推荐用target_link_options替代直接修改LINK_FLAGS,可读性更高且不容易出错:

target_link_options(beTheLight-unit-tests PRIVATE
    -Wl,--wrap=get_rx_dali_flag
    -Wl,--wrap=set_led_frequency
    -Wl,--wrap=application_process
)

把这段配置加在target_link_libraries配置之后即可。

内容的提问来源于stack exchange,提问作者arda30

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:45:10