GCC常见命令及用法
GCC工具介绍以及常见的用法; GCC编译命令: 1. GCC工具 GCC编译器: GCC(GNU Compiler Collection)是由 GNU 开发的编程语言编译器。 GCC最初代表“GNU C Compiler”,当时只支持C语言。 后来又扩展能够支持更多编程语言,包括 C++、Fortran 和 Java 等。 因此,GCC也被重新定义为“GNU Compiler Collection”,成为历史上最优秀的编译器, 其执行效率与一般的编译器相比平均效率要高 20%~30%。 GCC的官网地址为:https://gcc.gnu.org/,在Ubuntu系统下系统默认已经安装好GCC编译器,可以通过如下命令查看Ubuntu系统中GCC编译器的版本及安装路径: GCC编译工具链: GCC编译工具链(toolchain),是指以GCC编译器为核心的一整套工具。它主要包含以下三部分内容: gcc-core:即GCC编译器,用于完成预处理和编译过程,把C代码转换成汇编代码。 Binutils :除GCC编译器外的一系列小工具包括了链接器ld,汇编器as、目标文件格式查看器readelf等。 glibc:包含了主要的 C语言标准函数库,C语言中常常使用的打印函数printf、malloc函数就在glibc 库中。 在很多场合下会直接用GCC编译器来指代整套GCC编译工具链。 Binutils工具集: Binutils(bin utility),是GNU二进制工具集,通常跟GCC编译器一起打包安装到系统,它的官方说明网站地址为: https://www.gnu.org/software/binutils/ 。 在进行程序开发的时候通常不会直接调用这些工具,而是在使用GCC编译指令的时候由GCC编译器间接调用。下面是其中一些常用的工具: as:汇编器,把汇编语言代码转换为机器码(目标文件)。 ld:链接器,把编译生成的多个目标文件组织成最终的可执行程序文件。 readelf:可用于查看目标文件或可执行程序文件的信息。 nm : 可用于查看目标文件中出现的符号。 objcopy: 可用于目标文件格式转换,如.bin 转换成 .elf 、.elf 转换成 .bin等。 objdump:可用于查看目标文件的信息,最主要的作用是反汇编。 size:可用于查看目标文件不同部分的尺寸和总尺寸,例如代码段大小、数据段大小、使用的静态内存、总大小等。 系统默认的Binutils工具集位于/usr/bin目录下,可使用如下命令查看系统中存在的Binutils工具集: # 在Ubantu上执行如下命令 ls /usr/bin/ | grep linux-gnu- glibc库: glibc库是GNU组织为GNU系统以及Linux系统编写的C语言标准库,因为绝大部分C程序都依赖该函数库,该文件甚至会直接影响到系统的正常运行,例如常用的文件操作函数read、write、open,打印函数printf、动态内存申请函数malloc等。 在Ubuntu系统下,libc.so.6是glibc的库文件,可直接执行该库文件查看版本,在主机上执行如下命令: # 在Ubantu上执行如下命令 # 以下是Ubuntu 64位机的glibc库文件路径,可直接执行 /lib/x86_64-linux-gnu/libc.so.6 ...