目录
原文:https://www.cnblogs.com/lsgxeva/p/7910509.html
简介
GNU binutils是一组二进制工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip.
GCC: GNU C Complier(GNU C 编译器)
不仅仅能支持C语言,它现在还支持 Ada、C++、Java、Objective-C、Pascal、COBOL 以及函数式编程和逻辑编程的
Mercury 语言等。因此,现在的 gcc 已经变成了 GNU Compiler Collection,也即是 GNU 编译器套件.
g++: gcc 的一个版木,默认语言设置为C++,而且在连接的时候自动包含标准 C++ 库。
说明
GCC 使用的软件工具:
1)addr2line
给出一个可执行文件的内部地址,addr2line使用文件中的调试信息将地址翻译成源码文件名和行号。该程序是binutils包的一部分。2)ar
是一个程序,可以从文档中增加、删除和析取文件来维护库文件。通常使用该工具是为了创建和管理连接程序使用的目标库文档。该程序是binutils包的一部分
3)as
GNU 汇编器。binutils包的一部分
4)autoconf
产生的 shell 脚本自动配置源代码包去编译某个特定版本的 UNIX
5)c++filt
程序接受被 C++ 编译程序转换过的名字(不是被重载的),而且将该名字翻泽成初始形式。 该程序是 binutils 包的一部分
6) gcov
gprof使用的配置工具,来确定程序运行时哪一部分耗时最大7)gdb
GNU调试器,用于检查程序运行时的值和行为
8)GNATS
GNU的调试跟踪系统(GNU Bug Tracking System),一个跟踪GCC和其他GNU软件问题的在线系统
9)gprof
该程序会监督编译程序的执行过程,并报告程序中各个函数的运行时间,可以根据所提供的配置文件来优化程序。该程序是 binutils 包的一部分10)ld
GNU连接程序,该程序将目标文件的集合组合成可执行程序。binutils包的一部分
11) libtool
一个基本库,支持make程序的描述文件使用的简化共享库用法的脚本12) make
一个工具程序,它会读makefile脚本来确定程序中的哪个部分需要编泽和连接,然后发布必要的命令。它读出的脚本(叫做makefile或Makefile)定义了文件关系和依赖关系
13) nlmconv
将可重定位的目标文件转换成NetWare可加载模块(NetWare Loadable Module, NLM)。该程序是 binutils 的一部分
14) nm
列出目标文件中定义的符号。该程序是 binutils 包的一部分
15) objcopy
将目标文件从一种二进制格式复制和翻译到另外一种。该程序是 binutils 包的一部分
16) objdump
显示一个或多个目标文件中保存的多种不同信息。该程序是 binutils 包的一部分17) ranlib
创建和添加到 ar 文档的索引。该索引被ld使用来定位库中的模块, binutils包的一部分
18)ratfor
预处理程序可由 GCC激活,但不是标准GCC发布版的一部分19)readelf
从 ELF 格式的目标文件显示信息。该程序是 binutils 包的一部分
20) size
列出目标文件中每个部分的名字和尺寸。该程序是 binutils 包的一部分
21) strings
浏览所有类型的文件,析取出用于显示的字符串。该程序是 binutils 包的一部
22) strip
从目标文件或文档库中去掉符号表,以及其他调试所需的信息。该程序是 binutils 包的一部
23) vcg