请教用MDK编译出现dfa.axf: Error: L6218E: Undefined symbol

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教用MDK编译出现dfa.axf: Error: L6218E: Undefined symbol相关的知识,希望对你有一定的参考价值。

Build target 'Target 1' compiling wuyuetian.c... assembling STM32F10x.s... linking... dfa.axf: Error: L6218E: Undefined symbol GPIO_Init (referred from wuyuetian.o). dfa.axf: Error: L6218E: Undefined symbol GPIO_WriteBit (referred from wuyuetian.o). dfa.axf: Not enough information to list image symbols. dfa.axf: Not enough information to list the image map. dfa.axf: Finished: 2 information, 0 warning and 2 error messages. Target not created 编译时出现这个错误 请高手帮忙解答一下。

出现Target not created,原因主要有:

    编译时出错,语法错误,变量未定义。

    连接时出错,调用外部函数,而由缺少相应的OBJ文件。

    其他原因,用Demo版,限制是程序不能大于4K,结果你超过了4k。

Target not created:意思就是编译没有成功。这是因为程序中有错误。

编译语言:是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。

【编译程序】:

1、词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。

2、源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。

3、词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。

4、编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。

5、中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现中间代码,即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。

参考技术A undefined symbol 意思是未定义的符号,符号是指函数或变量.你要检查一下你是否定义了相关两个名称的函数.或者是那两个函数所在的文件没有正确加入到工程当中,有没有放在能正确编译的位置. 参考技术B 要相信编译结果,对应的变量或函数就是没有定义。
我可能对keil进行调错或退出没有保存的原因,只剩下要调用的.h文件,而.c文件不见了。

MDK中在stm32下载出现error:flash download failed “cortex-m3”的问题

主要原因,以前用的是J-LINK ,现在用的是ST-LINK 。MDK默认是J-LINK 。所以在改了下载器。
技术分享图片

技术分享图片



以上是关于请教用MDK编译出现dfa.axf: Error: L6218E: Undefined symbol的主要内容,如果未能解决你的问题,请参考以下文章

stm32编译时出现 error: #35: #error directive: "Please select first the target STM32F10x device used

MDK中在stm32下载出现error:flash download failed “cortex-m3”的问题

手把手教你在Keil MDK中使用GCC编译器工具链

用st link+mdk3.8仿真stm32103提示error flash download failed - Target DLL has been canceld。。。

mini2440开发板用MDK和JLINK烧写程序时候出现error:flash download failed -ARM920t

请教MDK5中RTX-Kernel如何使用