1.2. GNU Binutils都包含哪些工具

如上所述,Binutils,是一组工具的统称,其包含了很多工具。

Binutils主要包括了ld和as。

另外也包括了,相对次要的,但实际上也很常用的,其他工具,比如ar,nm,objcopy等等。

下面先简要的介绍一下,这些工具是什么,以及主要功能:

1.2.1. Binutils中包含的主要工具

  • ld

    链接器。

    将多个目标文件,链接成一个可执行文件(或目标库文件)。

  • as

    汇编器。

    将汇编源代码,编译为(目标)机器代码

1.2.2. Binutils中包含的其他次要工具

  • addr2line

    将地址转换为(文件名和)行号的工具

    一般主要用于反汇编(带确认此点)

  • ar

    用来操作(.a)档案文件,比如创建,修改,提取内容等

  • c++filt

    Filter to demangle encoded C++ symbols

  • dlltool

    Creates files for building and using DLLs

  • gold

    一个新的,速度更快的,只针对于ELF的链接器

    当前出于测试中,还不是很成熟稳定

  • gprof

    Displays profiling information

  • nlmconv

    Converts object code into an NLM

  • nm

    列出目标文件中的符号

  • objcopy

    拷贝并翻译(转换)文件

    可用于不同格式的二进制文件的转换

  • objdump

    显示目标文件中的信息

  • ranlib

    Generates an index to the contents of an archive

  • readelf

    显示ELF格式的(目标)文件的信息

  • size

    显示目标文件或(.a)档案文件中的节(section)的大小

  • strings

    显示文件中的(可打印)的字符串信息

  • strip

    去除符号

    一般用来,把可执行文件中的对于的信息,比如用于debug的信息,去除掉

    以实现,在不影响程序功能的前提下,减少可执行文件的大小,减少程序的空间占用

  • windmc

    A Windows compatible message compiler

  • windres

    A compiler for Windows resource files

而接下来的章节,就是详细的介绍每一个工具的详细功能和具体用法了。