当前位置:首页 > > strongerHuang
[导读]Keil MDK 是否支持编译器?有没有办法选择其他编译器?

作者 | strongerHuang

微信公众号 | strongerHuang


Keil MDK 是否支持编译器?有没有办法选择其他编译器?


可能你使用其他GUN工具链进行编译时,会出现类似如下错误:

--- Error: can't execute 'as'--- Error: can't execute 'gcc'

用于ARM芯片的GCC编译器有许多不同的变体,现在Keil MDK仍然支持GCC编译器的,下面就来讲述一下在Keil MDK中使用GCC编译器工具链。 

1

关于 GCC

GCC 原本代表“GNU C Compiler”的意思 ,它属于GNU编译器套件。GCC 是 GNU 推出的功能强大、性能优越的多平台编译器,是 GNU 的代表作品之一。

目前(2020-11)GCC已经更新到 V10.2版本了。
早期的GCC主要针对于C语言,随着编程的发展,现在不仅支持C语言,还支持其他很多语言,包括 C++、Ada、Objective-C、Fortran 和 Java 等。
因此,GCC 的意思被重新定义为“GNU Compiler Collection”,也即“GUN 编译器套件”。
GCC受到广大软件开发者的喜欢,有一个很重要的原因就是免费。你会发现一个问题,很多开源的IDE,基本上集成的编译器都是GCC,比如STM32CubeIDE、RT-Thread Studio等。
关于GCC更多的介绍,可以参看我之前分享的文章 GCC为何如此强大? 

2

下载 GCC 工具链

这里使用的 GCC工具链 其实是“GNU Arm嵌入式工具链”,是ARM 官方推荐的一套工具,主要是针对32位Arm Cortex-M、 Cortex-R和Cortex-A系列处理器的一套工具链
GNU Arm包括GNU编译器(GCC),可直接从Arm免费获得,用于Windows,Linux和Mac OS X操作系统上的嵌入式软件开发。

进入网页,根据自己系统选择合适的版本下载:


当然,我们这里选择windows版exe文件,或压缩文件。(因为Keil只支持Windows版本)。


其实,你可以在gcc主干上找到分支。


3

安装 GCC 工具链

方法一:安装exe文件 在windows安装exe文件,相比是一个程序员都会安装,根据提示信息,基本上一路“next”下去就行了。


方法二:直接解压zip压缩文件 如果下载的是zip压缩文件,直接解压文件到指定目录即可。
如果你进行了第一种方法exe安装,你进入安装目录下,你会发现安装的文件和这里解压的文件一样。


4

Keil 配置 GCC 工具链

这里配置方法和我之前分享文章《手把手教你升级Keil MDK的ARM编译器》中第3章节【Keil 配置编译器】方法类似。
打开工程管理,进入“Folders/Extensions”选项栏 可以通过菜单:Project -> Manage -> Project items进入。
也可以通过工具栏工程管理快捷图标进入:


这里切换配置编译器工具方法比较简单,此时就可以和往常一样正常使用了。 

5

额外说明

切换编译器会导致工程配置选项发生变化,比如:


配置选项发生变化都是小问题,因为不同编译器,代码不兼容性才是大问题,比如你直接编译针对Arm编译器的代码,肯定会出问题。

这里的细节比较多,后期抽空再给大家描述切换编译器代码迁移修改的内容。

------------ END ------------


关注 微信公众号『嵌入式专栏』,底部菜单查看更多内容,回复“加群”按规则加入技术交流群。


免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

当我们谈起C语言,很多人第一印象是面向底层、面向系统的编译型语言,写出来的程序一般都是从头到尾跑一遍就结束,很少和用户交互。但实际上,C语言从诞生开始就支持交互式的程序设计,通过标准输入输出和用户实时交互,接收用户输入、...

关键字: C语言 编程

在STM32嵌入式开发中,精确延时是非常基础但又极其关键的功能。无论是驱动单总线传感器(比如DS18B20)、控制LCD屏幕时序、还是生成精确的脉冲信号,都需要用到微秒级甚至纳秒级精度的延时。很多新手刚开始使用STM32...

关键字: STM32 嵌入式

在C语言开发中,位操作符是最容易被新手忽略,却能在嵌入式开发、底层驱动、算法优化中发挥巨大作用的工具。和常规的算术操作、逻辑操作相比,位操作直接操作二进制位,执行效率更高,占用代码空间更小,能轻松实现很多用常规方法很难实...

关键字: C语言 位操作符

在C语言开发中,原生字符串的使用一直存在诸多不便。传统C语言中,字符串本质是以'\0'结尾的固定字符数组,开发人员必须提前预估字符串的最大长度:如果预估过小,拼接或插入字符时会出现缓冲区溢出,引发内存越界错误;如果预估过...

关键字: C语言 字符串

随着半导体测试向更高复杂性与并行度演进,多工位自动测试设备(ATE)和SiC/GaN测试对电感、电容和电阻(LCR)测量的需求不断提升。然而,传统的外接台式LCR仪表和基于线缆的设置难以扩展,而且会降低可重复性。本文介绍...

关键字: 半导体 电阻 嵌入式

智能高尔夫球追踪系统是一项创新的嵌入式电子项目,旨在展示如何将紧凑型物联网硬件集成到体育科技应用中。在体育领域,高尔夫球扮演着主要角色,但在现代时代,所有设备都变得更加智能化,高尔夫球也由此演变为智能高尔夫球。本项目结合...

关键字: 嵌入式 物联网 NRF无线技术

在工业自动化、智能传感、嵌入式组网等分布式总线系统中,设备自动地址分配是实现节点互联互通、即插即用的核心技术。传统人工配置地址方式存在操作繁琐、扩展性差、地址冲突风险高、维护成本高等诸多问题,已无法适配大规模、动态化的总...

关键字: 总线 嵌入式 组网

2026年6月8日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 正式宣布,首次荣获全球嵌入式应用安全连接解决方案知名供应商NXP® Semiconduc...

关键字: 物联网 移动设备 嵌入式

城市灯火通明、生活井然运转的背后,总有人在不被注意的地方,日复一日地坚持着。他们或许没有惊天动地的故事,却在漫长岁月里,用自己的方式守护着他人的生活。近日,乡村教师班爱花、爱心厨房运营者丫丫妈,以及“扛楼女工”云姐的故事...

关键字: 西门子家电 洗碗机 嵌入式

2026年5月15日,正值“世界无幽日”,一组数据再次引发公众关注:据《中国幽门螺杆菌感染防控》白皮书显示,我国幽门螺杆菌人群感染率已接近50%,涉及超过7亿人口,且家庭内传播特征极为显著——父母若感染,子女感染风险升高...

关键字: 洗碗机 AI 嵌入式
关闭