编译DA14531的Blink示例(Jlink)遇LTO错误,如何解决?
解决DA14531 Blink示例LTO编译错误的方法
原因说明
报错的核心是你当前使用的Arm Compiler for Embedded版本(大概率是免费社区版)不支持链接时优化(LTO)功能,因此需要在编译配置中关闭LTO选项。
具体解决步骤
1. Keil MDK环境下的操作
- 打开DA14531 Blink工程
- 点击工具栏的
Options for Target(魔法棒图标) - 切换到
Target标签页,找到Linker Optimization区域 - 取消勾选
Link-Time Optimization (LTO)选项 - 切换到
Linker标签页,确保没有添加--lto相关的编译参数 - 保存配置后重新编译工程
2. Makefile/命令行编译环境下的操作
- 找到工程的Makefile文件
- 搜索包含
LTO、--lto或者-flto的编译/链接参数 - 删除或注释掉这些参数,例如:
# 原可能存在的参数,注释或删除 # CFLAGS += -flto # LDFLAGS += --lto - 保存Makefile后重新执行编译命令
额外注意事项
- 若使用Dialog官方SDK编译,检查SDK自带的配置脚本,确认是否默认开启LTO,找到对应开关并关闭
- 关闭LTO后若出现其他编译错误,可尝试调整优化等级(比如将
-O3改为-O2或-O1),保证代码正常编译
内容的提问来源于stack exchange,提问作者Eddie Iglesias
相关产品推荐
相关产品推荐

