keil常见编译问题和解决
1. 场景1a. 现象:b. 问题分析: 翻译:符号未定义c. 解决方式场景一:才源代码和头文件中去定义,声明场景二:把原来的源文件和头文件都先删除,之后编译一下,再重新定义函数和头文件声明
2. 场景2a. 现象:问题分析解决方法 1. 添加启动文件方法 2. 改变启动声明形式(我自己取得名字)
3. 场景3:报错现象:问题分析:解决方式
1. 场景1
a. 现象:
undefined symbol xxx (referred from xx.o)
b. 问题分析: 翻译:符号未定义
两种情况:
情况一:我的源代码(.c)还有自己的(.h)文件没有声明
情况二:我也没搞明白的,代码可能被优化了,声明了却还是无法编译
c. 解决方式
场景一:才源代码和头文件中去定义,声明
场景二:把原来的源文件和头文件都先删除,之后编译一下,再重新定义函数和头文件声明
2. 场景2
a. 现象:
error: L6236E: No section matches selector - no section to be
点击问题后跳转
问题分析
问题在起始文件处 第一个原因是:没有添加起始文件 第二个原因是:起始文件的格式和声明格式不同
解决
方法 1. 添加启动文件
找到启动文件 startup 加到 source 文件夹中 找到这个文件 startup 然后添加进去,添加启动文件
方法 2. 改变启动声明形式(我自己取得名字)
如果本身有启动文件start.s ,在启动文件正确的条件下,进入 keil上方工具栏
进入 linker 取消 use memory latout 然后把 scatter 中的文件都清空
3. 场景3:
报错现象:
*** Target ‘Target’ - Device Family ‘Cortex-M0’, default ARM-Compiler version ‘Unspecified: use latest compiler version 5’ is not available.
问题分析:
无法编译的问题,表面提示是版本太低,可以尝试更新版本,但是很麻烦 但实际上可以看到是 ARM - Compiler 的问题,然后找到keil的 arm -compiler
解决方式
这个在哪呢? keil上方工具栏 点击第一个的魔法棒,看到标签页 选择target,里面看到右边 看到这个标题了无 ? arm compiler ,然后这里调整一下
就可以了
问题描述:如果c文件无法编译,编译按钮呈现灰白色,如下图:
问题解决:可以检查一下是否将文件加入了组中,如图所示:
?如果组中没有该文件,即可在组中加入,并尝试编译。
keil编译器出现问题,根据提示意思就是ARM编译器选择不对的问题。
*** Target 'Printf' uses ARM-Compiler 'V5.06 update 6 (build 750)' which is not available.*** Please review the installed ARM Compiler Versions:? ?'Manage Project Items - Folders/Extensions' to manage ARM Compiler Versions.? ?'Options for Target - Target' to select an ARM Compiler Version for the target.*** Rebuild aborted.Build Time Elapsed:??00:00:00
解决办法点击options of target 在ARM Compiler选项里面选择ARM编译器版本,一般选择默认的就好。
如图