HAL库 编译错误:XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o)的可能原因之一及解决方法

作者在学习STM32HAL库时遇到编译错误L6218E,问题源自未定义的symbolassert_param。尝试了网上的解决方案,发现不是宏定义问题,而是缺少相关.c文件导致。将相应.c文件加入工程后,问题成功解决。该文对初学者有参考价值。
摘要由CSDN通过智能技术生成

我在学习STM32 HAL库版本时遇到了这种编译问题

 由于是刚开始学习STM32代码跟例程是一样的,所以代码不可能出错。我去网上寻找答案看到了

(7条消息) (已解决)STM32报错Error: L6218E: Undefined symbol assert_param (referred from misc.o)._老龙QAQ的博客-CSDN博客

于是按照他的方法试验了一下,发现

我已经定义了宏并不是这个问题。于是我找到了报错的函数位置

 

 发现报错的函数只存在这一个头文件里面,并且在写程序的时候并没有使用。所以有可能是没有把相关的.c文件加进去,导致函数未定义

 

 加入之后再重新编译,发现

 问题得到了解决。

希望这篇文章对像我一样刚学STM32 HAL库的小白有所帮助

这个错误是由于在链接过程中出现了一个未定义的符号"Motor",而这个符号是从"pid.o"文件中引用的。根据你提供的信息,我可以给出以下解决措施: 1. 首先,检查你的代码中是否定义了"Motor"这个符号。请确保在你的代码中已经正确定义了"Motor",并且没有任何拼写错误或语法错误。 2. 确保你的代码中包含了正确的头文件。根据你提供的问题描述,你可能需要检查"stm32f0xx_hal_conf.h"文件是否正确包含在你的代码中。请确保这个头文件包含了对"Motor"符号的定义。 3. 如果你的代码中确实正确定义了"Motor"符号,并且你已经包含了正确的头文件,那么可能编译器无法找到"Motor"符号的定义。这可能是因为你的代码中缺少了对"Motor"符号的实际定义或初始化。请确保你的代码中有对"Motor"符号的定义和初始化。 4. 如果你已经检查了上述步骤,并且仍然无法解决问题,那么可能是因为你的链接器脚本文件中缺少了对"Motor"符号的定义。请检查你的链接器脚本文件,确保它包含了对"Motor"符号的正确定义。 总之,要解决这个错误,你需要确保在你的代码中定义了"Motor"符号,并且它能够正确地链接和初始化。此外,还要确保你的代码中包含了正确的头文件,并且链接器脚本文件也包含了对"Motor"符号的正确定义。<span class="em">1</span> #### 引用[.reference_title] - *1* [Keil编译下出现axf: Error: L6218E: Undefined symbol](https://blog.csdn.net/gesu4250/article/details/123640628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值