天天看点

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 基础介绍

​​注意:这里嵌入式平台分为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​​​

​​总结​​

继续阅读