0
点赞
收藏
分享

微信扫一扫

GNU/GCC 基础介绍


天星

读完需要

2分钟

速读仅需1分钟

1个



GNU / GCC简介

1.1



GNU

GNU工具链(GNU Toolchain)是一组用于开发应用程序和操作系统的变成工具的集合,这些工具构成了一个完整的系统。

GNU工具链包括GCC,GNU Binutils,GNU m4,GNU make等部分。此处主要介绍GCC。

1.2



GCC

GCC原来代表“ GNU C Compiler”的意思。但是通过GCC的发展,现在不仅仅支持C语言,也支持C ++,Java,Objective-C等。

因此,GCC被重新定义为“ GNU编译器集合”,即GNU编译器套件。

2



什么是GCC?(GNU Complier集合)

GCC(GNU Complier Collection)是一套完整的工具链。

包括gcc,g ++,ar,as,ld,objcopy,objdump等。不同的平台都有一套完整的工具。

2.1



工具链组成

pc端:x86_64-linux-gnu-。否则就是gcc

GNU/GCC 基础介绍_编译器

嵌入式(MIPS):mips-linux-gnu-。arm对应的是arm-linux-gnu,不同的平台取代不同。

GNU/GCC 基础介绍_编译器_02

注意:这里嵌入式平台分为glibc 和 uclibc 之分。

2.2



主要工具介绍


名称

说明

gcc

C 编译器,事实上最终调的是cc1 和 汇编器和链接器。

g++

C++ 编译器,事实上最终调的是cc1plus 和汇编器和链接器。常用,事实上gcc 也可以编c++程序。

cpp

C和C++预处理器,同 gcc -E 选项

c++

用法同g++

addr2line

是一个可以将指令的地址和可执行映像转为文件名、函数名和源代码行数的工具。在程序崩溃时,可以快速定位代码位置。调试

ar

用于建立、修改和提取档案文件。档案文件经常被用作程序库文件

as

汇编器

ld

链接器

gdb

GNU 调试器

nm

用于列出二进制文件 (包括库文件和可执行文件) 中的符号,这些符号可以是函数、全局变量、静态变量等

objcopy

将目标文件从一种二进制格式复制和翻译到另外一种二进制格式

objdump

用于列出关于二进制文件的各种信息

readelf

读取ELF 格式的显示信息

strip

用于移除目标文件中的符号,以及其他调试所需要的信息

size

用于列出目标文件或者档案文件各段的大小


3



总结

本文简单介绍了,gcc工具链以及常用的工具,梳理一下各工具的用途。

声明:题图来源于gnu.org,侵删。


举报

相关推荐

0 条评论