[开发工具] 不使用microlib,使用AC6,编译出错

[复制链接]
5680|64
wanduzi 发表于 2024-12-27 13:38 | 显示全部楼层
有一些老版本的只支持AC5
流星flash 发表于 2024-12-27 14:32 | 显示全部楼层
在使用AC6编译器且不使用microlib时遇到编译错误,可能是因为缺少必要的库文件或配置不正确。请检查代码依赖、编译器设置,确保正确配置目标硬件和编译器选项。
laocuo1142 发表于 2024-12-27 15:37 | 显示全部楼层
检查链接器脚本
flycamelaaa 发表于 2024-12-27 15:37 | 显示全部楼层
库文件包含不对?
powerantone 发表于 2024-12-27 15:38 | 显示全部楼层
启动代码与标准库不兼容?
stormwind123 发表于 2024-12-27 15:38 | 显示全部楼层
检查您的编译器和链接器选项是否相互兼容
probedog 发表于 2024-12-27 15:39 | 显示全部楼层
分析您的代码,确保没有依赖于microlib特有的功能或行为。如果代码中有这样的依赖,您需要替换或修改这些部分。
classroom 发表于 2024-12-27 15:39 | 显示全部楼层
AC6版本与您的目标处理器和操作系统不兼容。
两只袜子 发表于 2024-12-27 15:40 | 显示全部楼层
查看编译和链接错误
jcky001 发表于 2024-12-27 15:41 | 显示全部楼层
参考AC6的官方文档和示例代码
申小林一号 发表于 2024-12-31 16:48 | 显示全部楼层
好想要添加代码
公羊子丹 发表于 2025-1-24 08:15 | 显示全部楼层
这个错误是因为没有配置正确的printf输出方式,你需要重定向printf函数到UART或者其他外设上。
周半梅 发表于 2025-1-24 08:18 | 显示全部楼层
如果你用AC6,记得在工程里禁用半主机模式,可以在链接选项里添加 --specs=nosys.specs 试试。
帛灿灿 发表于 2025-1-24 08:19 | 显示全部楼层
_sys_open这个问题其实是半主机模式引起的,把半主机的相关代码去掉应该就好了。
童雨竹 发表于 2025-1-24 08:32 | 显示全部楼层
你需要实现自己的_write函数,把printf的输出重定向到串口,比如用HAL库里的UART发送函数。
万图 发表于 2025-1-24 08:33 | 显示全部楼层
你可以先试试简单的滑动窗口中值滤波,代码实现起来也不复杂。
万图 发表于 2025-1-24 08:33 | 显示全部楼层
如果不想用microlib,可以用标准C库的newlib,但一定要正确实现系统调用函数,比如_write。
Wordsworth 发表于 2025-1-24 08:35 | 显示全部楼层
定义_sys_open的话,检查下是不是在多个文件里重复定义了,导致链接器报错。
Bblythe 发表于 2025-1-24 08:36 | 显示全部楼层
试着用一个简单的main函数测试printf,比如先打印一行字符串,确保配置无误。
Pulitzer 发表于 2025-1-24 08:37 | 显示全部楼层
如果用的是STM32CubeIDE,可以直接用CubeMX生成UART的printf重定向代码,很方便。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部