0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Keil MDK中使用GCC编译器工具链

strongerHuang 来源:strongerHuang 作者:strongerHuang 2020-11-20 15:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

嵌入式专栏

1

关于 GCCGCC原本代表“GNU C Compiler”的意思,它属于GNU编译器套件。GCC 是 GNU 推出的功能强大、性能优越的多平台编译器,是 GNU 的代表作品之一。 网址: https://gcc.gnu.org 目前(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操作系统上的嵌入式软件开发。 下载地址:

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

(公号不支持外链接,请复制链接到浏览器打开)

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

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

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

https://gcc.gnu.org/git/gcc.git

嵌入式专栏

3

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

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

嵌入式专栏

4

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

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

strongerHuang

5

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

配置选项发生变化都是小问题,因为不同编译器,代码不兼容性才是大问题,比如你直接编译针对Arm编译器的代码,肯定会出问题。 这里的细节比较多,后期抽空再给大家描述切换编译器代码迁移修改的内容。

责任编辑:xj

原文标题:手把手教你在Keil MDK中使用GCC编译器工具链

文章出处:【微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • GCC
    GCC
    +关注

    关注

    0

    文章

    112

    浏览量

    26440
  • keil
    +关注

    关注

    69

    文章

    1233

    浏览量

    173390
  • MDK
    MDK
    +关注

    关注

    4

    文章

    211

    浏览量

    33771

原文标题:手把手教你在Keil MDK中使用GCC编译器工具链

文章出处:【微信号:strongerHuang,微信公众号:strongerHuang】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用 Keil Studio for Visual Studio Code开发 STM32 设备

    与业界工具的无缝集成、版本控制支持,以及用于 CI 工作流的命令行接口(CLI)。 Keil Studio 作为 Arm Keil MDK 6的一部分,为基于 CortexM 的微控制
    的头像 发表于 03-05 17:41 4453次阅读
    使用 <b class='flag-5'>Keil</b> Studio for Visual Studio Code开发 STM32 设备

    何在 VF2 上编译东西?

    /linux-headers-5.15.0-starfive\' make[2]:对 \'include/generated/vdso-offsets.h\' 无需执行任何作。 警告:编译器与用于构建内核的编译器不同 内核
    发表于 03-03 07:15

    入门篇:瑞芯微 RK 平台编译工具自动适配原理全解析

    配置交叉编译器、指定路径、配置环境变量,稍有偏差就会报「找不到gcc」「架构不匹配」等错误,折腾半天才能开始正式编译。 但用过瑞芯微官方SDK的开发者都有一个直观感受: 不用手动配工具
    的头像 发表于 02-11 07:10 3646次阅读
    入门篇:瑞芯微 RK 平台<b class='flag-5'>编译</b><b class='flag-5'>工具</b><b class='flag-5'>链</b>自动适配原理全解析

    LAT1187+在 Keil 中使用 STM32CubeProgrammer应用笔记

    使用 STM32CubeProgrammer 进行下载,但是 Keil 编译器中支持该产品系列的软件 Pack 还需要一些时间才会被更新。从而,用户能够使用 Keil 编译器进行
    发表于 01-11 17:27 0次下载

    ESP32-S3 工具+环境配置的最终步骤清单

    、Ninja、CMake路径)已加载。 步骤3:验证工具是否配置成功 在 export.bat 运行后的终端中,执行以下命令: # 验证 ESP32-S3 编译器
    发表于 11-26 07:36

    开源鸿蒙技术大会2025丨编译器与编程语言分论坛:语言驱动系统创新,编译赋能生态繁荣

    语言设计演进、编译器优化、工具创新等前沿议题,汇聚产学研多方力量,共同探讨如何通过语言与编译技术推动开源鸿蒙生态向更高效、更智能的方向发展。
    的头像 发表于 11-20 17:24 1282次阅读
    开源鸿蒙技术大会2025丨<b class='flag-5'>编译器</b>与编程语言分论坛:语言驱动系统创新,<b class='flag-5'>编译</b>赋能生态繁荣

    RISC-V的工具GCC内联汇编

    内联汇编操作。这里我们可以用前后各带下划线的关键词asm。 2.关键词“volatile”是可选的。如果在使用的过程中添加此关键词,则要求编译器对后续括号内添加的汇编程序不进行任何优化以保持其原状;如果没有
    发表于 10-30 06:59

    gcc工具无法汇编硬件浮点指令fsqrt问题

    团队在项目推进过程中发现,Linux环境下,math库中的sqrt()函数无论是在浮点数的gcc工具中还是整数的gcc工具
    发表于 10-20 06:19

    飞凌嵌入式ElfBoard-Vim编辑GCC编译器的安装

    GCC(GNU Compiler Collection)是由GNU开发的编程语言编译器,最初是作为GNU操作系统的编译器编写的。GCC是一个编译器
    发表于 10-15 08:44

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译呢?

    GCC编译器,怎么才能实现c文件中未被调用的函数,不会被编译?有什么编译选项可以设置吗? 移植代码,有些函数没被调用的函数想留在代码里,但不想被编译
    发表于 09-28 12:25

    scons+gcc每次编译后怎么才能打印出 error总数 和 warning总数?

    MDK 和 IAR 编译器好像有这样的功能,不知道gcc怎么才能搞出来这种功能? 谢谢!
    发表于 09-28 12:09

    请问如何在keil μVision 5上进行ARM编译器的代码优化?

    何在keil μVision 5上进行ARM编译器的代码优化?
    发表于 08-20 07:37

    何在Keil中将NuMicro BSP从Arm编译器5迁移到编译器6?

    Keil中将NuMicro BSP从Arm编译器5迁移到编译器6!
    发表于 08-20 06:29

    求助,关于NanoEdge AI Studio生成的库交叉编译器版本疑问求解

    20231009\", 那么问题来了,怎么在NanoEdge AI Studio设定交叉编译器呢,比如设置为armcc、armclang、iccram,因为我需要将库加到keil或者iar工程里面。 看样子这个软件生成的库是arm-g
    发表于 08-08 07:25

    编译器功能安全验证的关键要素

    在汽车、工业、医疗等安全关键型应用中,确保功能安全合规性需要严格的工具验证。开发安全关键型软件的企业必须遵守ISO 26262、IEC 61508、ISO 62304等国际标准对编译器工具
    的头像 发表于 07-05 13:37 1764次阅读