keil 5 : Error: L6218E: Undefined symbol 问题解决方法小记
最近学习嵌入式开发,因项目框架较大,部分内容改动,在将别人单独写的串口读取数据源码添加到工程中后,编译出现以下问题:
通过查询资料,都是在说未定义引下的错误。
回头检查项目,源文件加入到工程,头文件也已包含。而后多次尝试编译,未果;关闭重启,亦未果。。。
询求正点原子技术支持,远程协助,还是未能解决。。。
编译通不过,调试无法进行,苦恼一天。。。。
后来,多次将源文件多项目中删除后重新添加,无意间发现,项目中的源文件既有*.c,也有*.cpp,也就是说有的是用C语言写的,有的是用C++写的程序。于是乎,上网查了下在keil中两种语言的使用区别,发现keil工程同时有c文件和CPP文件时,c文件的函数在cpp文件中是无法直接访问的。
也就是说,正常的include“”xxx.h“”那肯定是不行的,编译会提示说未定义错误。原来如此!!!我的工程是C++文件调用C文件中的函数,所以即使源文件添加了,也出现未定义错误。根据网上提供的解决方法,将
#include "XXX.h" 改为
extern "C"
{
#include "XXX.h"
}
然后再编译, 0 Error(s), 0 Warning(s). OK !!
总结:
1.一般情况下,Error: L6218E: Undefined symbol 若是由于未定义引起的错误,可以根据错误提示定位到相应的问题行,然后将相应的函数进行定义即可,网上大多也都是针对这种情况下的未定义错误进行解答;
2.如未将.c/.cpp源文件添加到工程中,也会出现此错误;
3.若工程中已经添加了源文件,也包含了相应的头文件,依然出现错误 Error: L6218E: Undefined symbol ,则检查是否是由于在Keil中混用C和c++引起的。这种情况下,除了像上述那样在源文件中包含头文件外,还可以在头文件中使用
#ifdef __cplusplus
extern "C" {
#endif
void xxxxx(xxx)
#ifdef __cplusplus
}
#endif
这样的条件编译,在源文件中直接使用#include ""包含头文件亦可。
keil 5 : Error: L6218E: Undefined symbol 问题解决方法小记相关推荐
- MDK编译出现*.axf: Error: L6218E: Undefined symbol 问题解决方法
本文参考此贴写成,原帖链接 http://blog.csdn.net/yx_l128125/article/details/9231385 在使用MDK编译工程时出现了如下错误,test.axf: E ...
- Keil 5出现Error: L6218E: Undefined symbol解决方法
Keil 5出现Error: L6218E: Undefined symbol解决方法 参考文章: (1)Keil 5出现Error: L6218E: Undefined symbol解决方法 (2) ...
- Keil 5下出现Error: L6218E: Undefined symbol Delay(unsigned) (referred from main.o).的解决方法
问题背景: 今天在给stm32f407vgt6点灯时,想实现循环闪烁,于是想从以前的工程中移植一个delay延时函数,移植后编译时发现出现错误: Error: L6218E: Undefined sy ...
- [STM32问题解决(1)]一类问题的解决办法——编译错误:XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).
目录 1 问题说明 1.1 问题回顾 1.2 寻找解答所犯的错误 2 解决办法(试用于一系列问题) 2.1 重审问题 2.1.1 Undefined symbol xxx.c 2.1.2 referr ...
- keil 5 报错记录:..\OBJ\templiate.axf: Error: L6218E: Undefined symbol PcdHalt (referred from rc522.o).
keil 5 报错记录:-\OBJ\templiate.axf: Error: L6218E: Undefined symbol PcdHalt (referred from rc522.o). 先来 ...
- keil错误提示Error: L6218E: Undefined symbol
出现Error: L6218E: Undefined symbol有一下几种可能 一,.C中未定义 二,.H中未引用 三,未包含含有该类型的.H文件 四,在keil中未添加.C或.H文件到工程
- HAL库 编译错误:XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o)的可能原因之一及解决方法
我在学习STM32 HAL库版本时遇到了这种编译问题 由于是刚开始学习STM32代码跟例程是一样的,所以代码不可能出错.我去网上寻找答案看到了 (7条消息) (已解决)STM32报错Error: L6 ...
- Keil编译下出现axf: Error: L6218E: Undefined symbol
摘要 使用STM32F0的主控芯片,Keil编译环境,编译能通过,链接出现axf: Error: L6218E: Undefined symbol 故障 解决措施一 stm32f0xx_hal_con ...
- [keil] Error: L6218E: Undefined symbol __aeabi_assert (referred from xxx.o).
文章目录 一.原因:引用#include <assert.h> 断言功能缺失 二. 官方解答 (1) 症状 (2)导致 (3)解决 1. 使用µVision中的Keil::ARM_Comp ...
最新文章
- leetcode算法题--复制带随机指针的链表★
- node执行cmd命令方法
- 红帽集群套件RHCS
- [深度学习] PyTorch-BigGraph 使用
- [Oracle]行列转换(行合并与拆分)
- 给hadoop 2.7.1 定制树莓派参数
- [转]ASP.NET MVC IOC 之AutoFac攻略
- jmeter的如何设置headers
- 标记集合 java编译_深入理解Java虚拟机读书笔记-java编译期和运行期优化
- 《CSS权威指南》读书笔记
- Unity3d打包程序报错NotSupportedException: Encoding 437 data could not be found.
- Opencv -- 13像素值统计及平均值和方差的意义
- linux 单网卡绑定两个ip
- 迁移过程中出现报错:无法解析的成员访问表达式[USERENV]
- 关于《算法的乐趣》历法一章演示程序错误的说明
- mongodb每秒写入量_OPPO百万级高并发MongoDB集群性能数十倍提升优化实践
- 2 理解网络协议的工作模式
- 计算机网络相关论文目录怎么弄,如何给你的标书、论文编页码和目录-论文页码设置...
- 为什么聊天软件一般采用UDP协议
- 淘宝淘金币助手,自动完成淘金币任务,蚂蚁庄园和蚂蚁森林,天猫领红包和收取能量
热门文章
- maven打包后运行:Error: Could not find or load main class ‐jar
- 转载 电子工程师的程序人生历程
- 每日一题 两个水桶问题
- fatal error: ***.h: No such file or directory
- 常见tcp/ip网络攻击方式分析
- mac上MAMP的各种坑
- jdk8 stream
- Substance Painter 的一些玩法笔记
- MATLAB | 三个趣的圆相关的数理性质可视化
- 基于JavaSDK调用FISCO BCOS 区块链