ARMcc、ARMclang、arm-none-eabi-gcc这3个嵌入式交叉编译工具链有什么区别?

📗嵌入式开发领域

① ARMCC是ARM公司开发的一套基于MDK的5代嵌入式工具链,嵌入在Keil IDE中使用(IDE顾名思义就是集成开发环境,代码编辑、代码编译、代码仿真、代码调试等过程都集成在IDE上,让用户只需关注代码逻辑和实现),也可在ARM官网独立下载。⭐商业行为-闭源⭐
② ARMCLANG同样是ARM公司开发的一套基于MDK的6代嵌入式工具链,同样嵌入在Keil IDE中使用,是基于苹果公司LLVM框架的嵌入式工具链,也可在ARM官网独立下载。⭐商业行为-闭源⭐
③ 🔗arm-none-eabi-gcc是ARM GNU Toolchain嵌入式工具链,基于GCC的衍生物,伟大开源始祖GNU的组件之一。在嵌入式开发方面,其配套环境如下:VSCode/Eclipse/Clion等 + arm-none-eabi-gcc工具链 + make工具/Makefile or CMake工具/CMakeList.txt + OpenOCD调试工具。⭐开源(致敬开源精神),可跨平台Win/Mac/Linux⭐。
不可否认的是,arm-none-eabi-gcc编译器相比于keil的AC5、AC6编译器,所编译出的hex文件占用flash稍微大一点。不过既然它自由开源,我们就去拥抱它吧。

细心的你应该发现了,打开keil uvision IDE的“俄罗斯方块”—>Folders/Extensions,其实可以选择性地使用以上的工具链,如下图所示

在这里插入图片描述
然后点击上方的Folders/Extensions

在这里插入图片描述
--------------------------------------------------------------------------------延伸--------------------------------------------------------------------------------------------
📘PC端程序开发领域
有3个常用的编译器,分别是GCC、MSVC、Clang,

① GCC编译器:GNU编译器集合。在Linux平台,GCC编译器被广泛使用;在Windows平台,选择安装🔗Cygwin / MinGW / MSYS2任意一个集合,可使用GCC编译。⭐开源⭐。
② MSVC:微软自家的编译器,与自家的IDE绑定,只能在Windows平台使用。⭐闭源⭐
③ Clang:苹果公司基于LLVM框架的编译器前端,LLVM项目中涉及到Clang前端,LLVM后端,LLD链接器。⭐开源⭐
据说Clang编译器是苹果公司为了【优化GCC编译器的编译速度】和【错误提示信息不健全】这2个缺点而挖人去开发出来的,对标GCC。

📙Make构建工具是啥?Makefile是啥?CMake工具又是啥?CMakeList.txt又是啥?它们都有什么用?

个人理解:就是当你有单个源文件时,可能并不需要这些工具,但是当你项目的源文件一旦多起来,编译就变得异常繁琐。
以前有聪明的程序员大佬就想到,能不能开发一个脚本文件和工具,来解决这个繁琐的步骤呢……于是Makefile脚本和Make构建工具就诞生了,Makefile里面的语法规定了多文件的编译顺序和编译规则。
随着项目的各种文件越来越多,越来越多,Makefile的内容也会越来越多,这个时候,又有聪明的程序员大佬想到了,能不能自动生成Makefile脚本的内容呢……于是CMakeList.txtCMake构建工具也诞生了,CMake就是用来结合CMakeList.txt文件规则和make工具来自动生成Makefile脚本文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值