• GNU Binutils 介绍


      从事 Linux 开发的朋友们都不可避免地用到一些工具,比如 objcopy、nm、objdump、readelf 等等。其实这一系列的工具,就是所谓的 Binutils,当然 GNU 就表示它们都是可以自由地使用的 GNU 软件。
      GNU Binutils,是 GNU Binary Utilities 的简写,一般简称为 Binutils。中文可以翻译为 GNU 的二进制工具集。显然,Binutils 是一组二进制工具的集合。也就是说,Binutils 不是指某一个工具,而是指一组工具,并且这些工具都是专门针对于二进制的。注意,这里千万不要理解错了,不是说这些 Binutils 工具只提供二进制文件,而是说这些工具的目的是用于操作二进制文件的,而不是针对于文本或者源代码。
      再说一遍:Binutils 工具是专门用于操作二进制的,而不是用于去操作或者编译文本、源代码的。
      在 Linux 环境下,这种二进制文件主要指 *.o 文件和 elf 执行文件。显然,编译源代码的是 gcc,所以 Binutils 不包含 gcc(这是一种简单的说法,实际上还是有很多关联的)。


    Binutils 工具  

    现在我们已经知道,Binutils 是一组工具集合,那到底包含了哪些工具呢?Binutils 中比较重要的是 ld 和 as。

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

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

    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

    转载自:阿基米东

  • 相关阅读:
    SpringBoot-启动原理解析及源码阅读-todo
    SpringBoot-入门简介和优缺点分析
    《机器学习》笔记 第2章——模型评估与选择: 经验误差与过拟合、评估方法、性能度量、比较检验方法、偏差与方差
    《机器学习》笔记 第1章——绪论 : 基本术语/假设空间的基础概念
    【JS 01】 JS中的JSON.stringify后的json字符串后怎么转为Java中String.class可以直接接受的转义json字符串?
    【Java多线程07】 并发安全读取Shell脚本/命令的输出的INFO流和ERR流
    时序预测 03
    时序预测 02
    时序预测 01
    【搬运链接】美团技术团队
  • 原文地址:https://www.cnblogs.com/doggod/p/13354037.html
Copyright © 2020-2023  润新知