STM32移植GCCGNU编译器·

STM32-----GNU、GCC、gcc、g++

Hugh

Hugh

148 0

GNU是一个类Unix操作系统,GNUGNU is NOT Unix的递归首字母缩写。 GCC--GNU Compiler Collection,GNU编译器集合,支持C,C++,Objective-C,Fortran,Ada,GO等语语言。 gcc/g++,分别为GCC编译器C,C++语言前端,分别编译CC++源码,并交给GCC后端生成机器码。

嵌入式工具链:实现代码的编译,链接以及生成可执行代码等。 主流嵌入式工具链接:Arm Compiler for Embedded,gcc-arm-none-eabi,IAR,GCC for ARM

Arm Compiler for EmbeddedAC5AC6两个主流版本,内部包含: armcc,armlink,fromlf等工具,其中AC6使用armclang替代armcc。 armcc和armclang区别:

1. **GCC** (GNU Compiler Collection)GNU 开发的编译器,许可证为 GPL 的自由软件; 2. GCC 原来只能处理 C,现在可以处理 C++、Pascal、Object-C、Java 等。 3. 苹果公司之前一直使用 GCC 作为编译器,但是 GCC Objective-C 支持一直不怎么好,好多新特性没有增加,所以苹果公司开始寻求编译器的替代品。 4. 这个时候LLVM就出现了,是 Chris Lattner 在硕士和博士时提出和形成的编译器,不过其是采用 GCC 的前端进行语义分析,然后 LLVM 做优化和生成目标代码,可以叫做 LLVM-GCC。 5. 后来苹果公司直接计划绕开 GCC,于是招募了 Chris Lattner 博士开发编译器,Clang 就这样诞生了,其基于 LLVM 开发的 C/C++/Obj-C 编译器,实际上其是一个编译器前端,来取代 GCC 或者超越 GCC 6. armccarm 公司开发的一款编译器,集成在 KEIL 以及 ARM DS IDE 里面,于5.06版本后停滞(AC5),不继续维护,其前端基于 Edison Design Group 。 7. armclang 集成于 armcc,基于新的架构 clang 和 LLVM,作为 arm 的第六代编译器,AC6,成为今后主推的编译器 keil使用Arm Compiler for Embedded工具链,vscode platfromIO使用gcc-arm-none-eabi工具链。

所属系列

从当前文章继续阅读它所在合集中的前后内容。

相关文章

优先推荐同专题、同标签和同作者内容,补足热门文章。

评论 0

登录 后参与评论

评论

成为第一个评论的人