GNU/GCC 基础介绍

简介: GNU/GCC 基础介绍

1.GNU / GCC简介


1.1GNU


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


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


1.2GCC


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


image.png


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


image.png


注意:这里嵌入式平台分为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工具链以及常用的工具,梳理一下各工具的用途。

相关文章
|
2月前
|
编译器 Linux 开发工具
|
2月前
|
NoSQL 编译器 开发工具
006.gcc编译器
gcc是什么?
61 0
006.gcc编译器
|
2月前
|
存储 NoSQL 算法
从一个crash问题展开,探索gcc编译优化细节
问题分析的过程也正是技术成长之路,本文以一个gcc编译优化引发的crash为切入点,逐步展开对编译器优化细节的探索之路,在分析过程中打开了新世界的大门……
527 1
|
18天前
|
自然语言处理 编译器 Go
GCC:GNU编译器
GCC:GNU编译器
17 0
|
18天前
|
Java 编译器 Linux
技术经验解读:【转载】详解GCC的下载和安装(源码安装)
技术经验解读:【转载】详解GCC的下载和安装(源码安装)
11 0
|
28天前
|
C语言
关于如何解决mingw64安装后配置完环境变量仍然执行不了gcc命令
关于如何解决mingw64安装后配置完环境变量仍然执行不了gcc命令
|
2月前
|
C语言
gcc的简易用法
【5月更文挑战第10天】gcc的简易用法。
32 8
|
2月前
|
C语言
gcc的简易用法(编译、参数与链接)
【5月更文挑战第14天】gcc的简易用法(编译、参数与链接)。
25 1
|
2月前
|
Unix Java 编译器
安装gcc
【5月更文挑战第14天】安装gcc。
51 1
|
2月前
|
C语言
转载 - gcc/ld 动态连接库和静态连接库使用方法
本文介绍了如何在GCC中实现部分程序静态链接、部分动态链接。使用`-Wl`标志传递链接器参数,`-Bstatic`强制链接静态库,`-Bdynamic`强制链接动态库。
57 0