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

2023-05-16

keil常见编译问题和解决

    • 1. 场景1
        • a. 现象:
        • b. 问题分析: 翻译:符号未定义
        • c. 解决方式
          • 场景一:才源代码和头文件中去定义,声明
          • 场景二:把原来的源文件和头文件都先删除,之后编译一下,再重新定义函数和头文件声明
    • 2. 场景2
        • a. 现象:
        • 问题分析
        • 解决
          • 方法 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 ,然后这里调整一下
在这里插入图片描述

就可以了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

keil 中常见的编译的问题分析 的相关文章

  • Keil 查看文件路径的方法

    目录 方法一 xff1a 方法二 xff1a 方法一 xff1a 在工程种选择任意一个文件 xff0c 然后点击右键 xff0c 选择 34 Option for File 34 就可以看到这个文件的路径了 方法二 xff1a 在文件框种右
  • 使用makefile替换Keil进行编译

    KEIL PATH 61 C Keil ARM ARMCC 61 KEIL PATH BIN40 armcc ARMASM 61 KEIL PATH BIN40 armasm ARMAR 61 KEIL PATH BIN40 armar A
  • keil C51脚本编译

    rem 使用bat编译C51项目 64 echo off amp setlocal enabledelayedexpansion set BIN PATH 61 C Keil v5 C51 set path 61 BIN PATH BIN
  • Keil 中,仿真调试查看局部变量值总是显示<not in scope>

    原因 xff1a 编译器把代码优化掉了 xff0c 直接导致在仿真中变量根本没有分配内存 xff0c 也就无法查看变量值 以后调试中遇到这种情况的解决办法 xff1a 核心思想是 xff1a 让变量值在代码中被读取其内存值 1 把变量定义为
  • keil MDK5,ARM-CC--->的使用

    文章目录 屏蔽某个waring 屏蔽某个waring 我们通过 options for target gt C C 43 43 gt Misc Controls中添加 diag suppress span class token opera
  • keil编译问题error C100: unprintable character... 和WARNING L16: UNCALLED SEGMENT...

    keil编译出现问题如下 问题 error C100 unprintable character 0xA3 skipped 原因 keil里面出现了中文输入法时写的标点 程序中不能出现全角的任何字符 包括空格在内的任何标点符号和空格都只能在
  • 基于stm32cubemx和keil的stm32(以stm32F407ZGTx为例)单片机的开发----实现printf函数将信息打印至串口

    一 printf打印函数实验 二 实验步骤 1 在cube里设置引脚 串口 串口5设置成异步 2 生成代码打开工程 别忘了先调试JLink 在main c文件开头添加头文件 在主函数外的用户区书写读取文件流函数 这样就可以使用printf函
  • keil遇到FCARM - Output Name not specified, please check 'Options for Target - Utilities'解决方法

    近期又开始复活学ARM 结果以前很容易就编译通过的事竟然出现意外 提示 FCARM Output Name not specified please check Options for Target Utilities 原因是加载文件时为了
  • Keil转到Eclipse遇到的几个问题

    ARM下Keil转到Eclipse后的几个问题 Keil转战到Eclipse下 首先 Eclipse的交叉工具链的环境要进行设置 其次 在Keil中的Scatter file在Eclipse下要重新编写 最后 Eclipse的调试环境要进行
  • keil软件安装与破解

    目录 目录 下载 安装 破解 下载 学习51单片机必要的开发工具是 KEIL C51 下载密码dsfs 安装 按照一般安装软件顺序即可 此处随便填写 破解 注意 需以管理员身份 运行 按照如下图片步骤 弹出如下对话框 再打开软件按如下操作
  • keil编译错误:ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED

    出现这个错误 很多网上都说是没注册成功导致的 注册成功的话会在keil的菜单栏 help gt about 里看到如下的显示 我的keil里about显示注册成功了 但还是出现错误提示 ERROR L250 CODE SIZE LIMIT
  • keil5 编辑栏一直是灰色

    无语了 气炸了 愤怒啊 查了一下 有很多 arm 和 c51 并存 不管他了 之前装了用完51 又装了arm 现在反而什么都用不了 打开license 发现过期了 重新破解 即可 注意音乐 大半夜吓死人 你以为这样就可以了 你就太天真了 网
  • Keil 5使用ST-LINK调试STM32程序

    1 下载并安装STM32 ST LINK Utility 含有驱动 2 启动STM32 ST LINK Utility 点击菜单 ST LINK Firmware 更新固件 3 打开Keil工程 设置Debug 4 开始调试
  • KEIL中怎样添加STC系列单片机

    我们有时在KEIL中新建工程时需要添加STC系列单片机 但就是找不到 这是因为你安转的Keil软件中没有STC的数据库 所以需要你手动添加 这就需要在STC ISP软件 这个软件可以在STC网http www stcisp com下载或者百
  • 关于Keil不识别系统头文件core_cm3.h的问题

    之前遇到一次这个问题 解决了 之后又遇到一次就忘了之前是怎么解决的了 所以记录一下 所有不识别系统头文件的问题都可以用这种方式解决 找到你工程目录下的头文件 我以core cm3 h为例 这个头文件在STM32 LIBRARY CMSIS
  • Keil不能正确生成.bin文件的解决办法

    1 打开keil IDE 然后打开help gt uVison Help 搜索fromelf关键字如下图1 然后再进入到右下角的索引找到fromelf命令行的语法和选项 找到 bin的说明如下 如红色标注所说 正是症结所在 即如果链接文件中
  • 关于KEIL MDK调试ARM程序不能仿真的问题

    在单片机程序调试过程中 由于程序量小 利用仿真器进行仿真调试方便直观 所以一般经常使用 但是keil经常会出现罢工 无法用仿真器调试的现象 如下图 解决方法也很简单 按照下图设置即可
  • keil找不到device,怎么办?

    下载好的keil 准备调试程序 却发现这个问题 找不到我需要的芯片啊啊啊 头大 后面发现是缺少相应的pack 安装keil时 好像没有自动装上STM32系列芯片 所以得需要自己安装 百度一下 找一些资源 然后 把途中红色框住的 分别放在安装
  • 如何确定嵌入式系统中的最大堆栈使用率?

    当我给Keil编译器 callgraph 选项时 它为我静态计算准确的 最大堆栈使用量 唉 今天它给了我一条 最大堆栈使用量 284 字节 未知 没有堆栈大小的函数 消息 以及 没有堆栈信息的函数 列表 Nigel Jones 表示递归在嵌
  • 如何更改 FreeRTOS 中任务的最大可用堆大小?

    我通过以下方式在任务中创建元素列表 l dllist pvPortMalloc sizeof dllist dlllist 有 32 字节大 我的嵌入式系统有 60kB SRAM 所以我希望系统可以轻松处理我的 200 个元素列表 我发现在

随机推荐