一、嵌入式系统软件开发流程
高级语言编写的源代码文件——》交叉编译器——》目标文件——》链接器
用目标机的汇编语言编写的源代码文件——》交叉汇编器——》目标文件——》链接器
链接器——》可执行程序——》目标机平台
交叉编译器:编译器运行在宿主机系统,但是编译器生成的可执行文件只能运行在目标机平台上。
二、开发环境分类
1、运行平台:本地开发环境、交叉开发环境
2、商业环境:收费工具、免费工具
三、GNU工具链
1、GNU工具链
(1)GNU Tools:全称(GNU Development Toolchains)
(2)GNU Tools交叉开发环境:全称(GNU Cross-Plateform Development ToolChains)
2、GNU既支持本地程序开发,又支持交叉编译
3、GNU开发工具
(1)自由软件
(2)完备的工具链:GCC、binutils、gdb、GNU make、patch、CVS、开发库
(3)命令行方式:使用稍复杂、功能强大
4、GNU Tools是Linux环境下最主要的开发工具集,主要有以下几部分:
(1)编译开发工具:把源程序编译为可执行文件,如GCC
(2)调试工具:对可执行程序进行源码或汇编级调试的软件,如gdb
(3)软件工程工具:用于协助多人开发或大型软件项目管理的软件,如:make等
5、GCC(GNU Compiler Collection)
(1)支持C、C++、ADA、Java、Fortran、PASCAL等语言
(2)主要包括:
①cpp:GNU C编译器的预处理器
②gcc:符合ISO标准的C编译器
③g++:符合ISO标准的C++编译器
④gcj:GCC的Java前端
⑤gnat:GCC的GNU ADA q5的前端
6、binutils:是一组二进制工具程序集合,是辅助GCC的主要软件。
主要包括:(1)as:GNU汇编器
(2)ld:GNU链接器
(3)ar:创建归档文件,以及制作静态库的工具
(4)nm:列出目标文件中的符号
(5)objcopy:复制和转化obj文件
(6)objdump:显示对象文件的信息
(7)readelf:显示elf格式执行文件中的各种信息
(8)size:显示目标文件和可执行文件各段的大小
(9)strings:显示文件中可以打印的字符
(10)strip:去掉可执行文件找那个多余的信息(如调试信息)
7、gdb:GNU调试器,可以用来调试C、C++和其他语言编写的程度。如加一些图形前端(如:DDD),可以在图形环境下调试程序。
8、GNU make:是一个用来控制可执行程序生成过程的程序。它允许用户生成和安装软件包,而无需了解生成、安装软件包的过程。
9、diff:比较文件差异的工具,也可以用来生成补丁。
10、patch:补丁安装程序,可以根据diff生成的补丁来更新程序
11、CVS:版本控制系统:用于管理发行版本和控制在多位作者间同时编辑源文件。
标签:文件,GCC,GNU,嵌入式,开发工具,编译器,概述,工具 From: https://blog.51cto.com/u_15903730/5915591