zoukankan      html  css  js  c++  java
  • 你知道 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    promise!
    123
    git回忆回忆回忆
    Vue基本指令
    vue小案例(跑马灯)
    mvc
    nodejs中path模块
    web服务端重定向
    弹性布局
    导出数据库的表的所有字段类型,长度,名称
  • 原文地址:https://www.cnblogs.com/tongongV/p/10744960.html
Copyright © 2011-2022 走看看