嵌入式开发领域:
1.ARMcc是ARM公司开发的一套第5代嵌入式工具链,嵌于keil IDE等IDE中(IDE顾名思义就是集成开发环境,代码编辑、代码编译、代码仿真、代码调试等过程都集成在IDE上,让用户只需关注代码逻辑和实现),属于收费的交叉编译工具链。
2.ARMclang同样是ARM公司开发的一套第6代嵌入式工具链,是基于苹果公司IIVM框架的嵌入式工具链,属于收费的工具链**。
3.GCC for ARM是个人用户基于编辑器搭建的Arm GNU Toolchain(arm-none-eabi-gcc)嵌入式工具链,熟悉吧?vscode、eclipse、clion等编辑器 + arm-none-eabi-gcc工具链 + make工具/CMake工具或makefile/CMakeList.txt脚本文件 + openocd调试工具(网上有很多大佬说用记事本或者notepad++等文本编辑器去自己搭建一套开发流程的……只能说……嗯 ……够原生态的,不过这样也有助于理解整套开发调试流程,我个人目前是不会的),属于开源的交叉编译工具链(致敬开源精神,开源万岁) ,可跨平台win/mac/linux。
虽然但是……arm-none-eabi-gcc编译器相比于keil的AC5、AC6编译器,所编译的hex文件比较大,Flash占用较高。
细心的你应该发现了,打开keil uvision的“俄罗斯方块”——>Folders/Extensions,其实可以选择性地使用以上的工具链,如下图,
打开keil uvision的“俄罗斯方块”
点击Folders/Extensions
--------------------------------------------------------------------------------延伸--------------------------------------------------------------------------------------------
纯C语言开发领域:
有3个常用的编译器,分别是GCC、MSVC、Clang,
1.GCC编译器:一套GNU的编译器,在Linux平台下,GCC编译器经常被使用;在windows平台下,有个安装集合叫 MinGW-64,人称win版GCC,开源。
2.MSVC:微软自家的编译器,集成在自家的IDE里面,只能在win下使用,闭源。
3.Clang:苹果公司基于LLVM框架的编译器前端,开源。
还有一个编译器叫Cygwin:暂时不知道是啥………………
据说Clang编译器是苹果公司为了【优化GCC编译器的编译速度】和【错误提示信息不健全】这2个缺点而挖人去开发出来的,对标GCC。
Make构建工具是啥?Makefile是啥?CMake工具又是啥?CMakeList.txt又是啥?它们都有什么用?
个人理解:就是当你有单个源文件时,可能并不需要这些工具,但是当你项目的源文件一旦多起来,编译就变得异常繁琐。
以前有聪明的程序员大佬就想到,能不能开发一个脚本文件和工具,来解决这个繁琐的步骤呢……于是Makefile脚本和Make构建工具就诞生了,Makefile里面的语法规定了多文件的编译顺序和编译规则。
随着项目的源文件越来越多,越来越多,Makefile的内容也会越来越多,这个时候,又有聪明的程序员大佬想到了,能不能自动生成Makefile脚本的内容呢……于是CMakeList.txt和CMake构建工具也诞生了,CMake就是用来结合CMakeList.txt文件规则来自动生成Makefile脚本文件。