编译工具链
# 编译工具链
编译软件是一个由多个步骤组成的过程,每个步骤都需要使用不同的工具进行处理。这些工具紧密协作,前一个工具的输出会成为后一个工具的输入,故称之为工具链。
# GNU工具链
GNU toolchain(GNU工具链)是一个包含了由GNU项目所产生的各种编程工具的集合。这些工具形成了一条工具链(串行使用的一组工具),用于开发应用程序和操作系统。
GNU既支持本地程序开发,又支持交叉编译。
- GNU Tools:全称(GNU Development Toolchains)
- GNU Tools交叉开发环境:全称(GNU Cross-Plateform Development Toolchains)
# GNU开发工具组成
GNU Tools是Linux环境下最主要的开发工具集,主要有以下几个部分:
编译开发工具:把源程序编译为可执行文件,如gcc。
调试工具:对可执行程序进行源码或汇编级调试的软件,如gdb。
软件工程工具:用于协助多人开发或大型软件项目管理的软件,如make等。
# GNU Tools 开发工具组件介绍
# GCC
GCC全称GNU Compiler Collection,是一组工具,支持C、C++、ADA、Java、Fortran、PASCAL等语言。
工具 | 功能 |
---|---|
cpp | GNU C编译器的预处理器 |
gcc | 符合ISO标准的C编译器,具体参考gcc工具的概述和使用 (opens new window) |
g++ | 基本符合ISO标准的C++编译器,gcc与g++的比较 (opens new window) |
gcj | GCC的java前端 |
gnat | GCC的GNU ADA 95的前端 |
# binutils
binutils是一组二进制工具程序集合,是辅助GCC的主要软件。
工具 | 功能 |
---|---|
as | GNU汇编器 |
ld | GNU链接器 |
ar | 创建归档文件,以及制作静态库的工具 |
nm | 列出目标文件中的符号 |
objcopy | 复制和转化obj文件 |
objdump | 显示对象文件的信息 |
readelf | 显示elf格式执行文件中的各种信息 |
size | 显示目标文件和可执行文件各段的大小 |
strings | 显示文件中可以打印的字符 |
strip | 去掉可执行文件中多余的信息(如调试信息) |
# gdb
GNU调试器。可以用来调试C、C++和其他语言编写的程序。如加一些图形前端,可以在图形环境下调试程序。
# GNU make
GNU make是一个用来控制可执行程序生成过程的程序。它允许用户生成和安装软件包,而无需了解生成、安装软件包的过程。
# diff
比较文本差异的工具,也可以用来生成补丁。
# patch
补丁安装程序,可根据diff生成的补丁来更新程序。
# CVS
版本控制系统,用于管理发行版本和控制在多位作者间同时编辑源文件。
编辑 (opens new window)
上次更新: 2023/03/31, 22:34:04
- 01
- Linux系统移植(五)--- 制作、烧录镜像并启动Linux02-05
- 03
- Linux系统移植(三)--- Linux kernel移植02-05