keil 中常见的编译的问题分析

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 ,然后这里调整一下
在这里插入图片描述

就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值