• 你知道 GNU Binutils 吗?【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

    官网:http://www.gnu.org/software/binutils/

    文档下载:http://download.csdn.net/download/luckydarcy/10016030
    ---------------------
    作者:阿基米东
    来源:CSDN
    原文:https://blog.csdn.net/lu_embedded/article/details/78205161
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    为云而生,腾讯云服务器操作系统TencentOS内核正式开源
    腾讯跨端框架 Hippy 常用调试方法和问题案例详解
    TVP思享 | 四个全新维度,极限优化HTTP性能
    把项目中那些恶心的无处存储的大块数据都丢到FastDFS之快速搭建
    通过ELK快速搭建一个你可能需要的集中化日志平台
    通过hadoop + hive搭建离线式的分析系统之快速搭建一览
    使用nginx搭建高可用,高并发的wcf集群
    如何大幅提升web前端性能之看tengine在大公司架构实践
    缓存一致性和跨服务器查询的数据异构解决方案canal
    高CPU业务场景下的任务分发方案Gearman搭建一览
  • 原文地址:https://www.cnblogs.com/tongongV/p/10744960.html
Copyright © 2020-2023  润新知