博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
你知道 GNU Binutils 吗?【binutils】
阅读量:5360 次
发布时间:2019-06-15

本文共 1631 字,大约阅读时间需要 5 分钟。

概述

  从事 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
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/tongongV/p/10744960.html

你可能感兴趣的文章
网页中插入透明Flash的方法和技巧
查看>>
动态内存申请函数选择(realloc、malloc 、alloca、 calloc)
查看>>
获取元素属性get_attribute
查看>>
视觉设计师的进化
查看>>
Python/jquery
查看>>
【BZOJ】【2132】圈地计划
查看>>
Lua 语言基本语法
查看>>
ARM 的Thumb状态测试
查看>>
windows下读取utf-8文件
查看>>
apache 启动不了的排查方法
查看>>
Java有没有goto?
查看>>
(转)makefile 的用法
查看>>
求不相邻金币相加和的最大值--动态规划1
查看>>
[转][osg]探索未知种族之osg类生物【目录】
查看>>
四十九. Zabbix报警机制 、 Zabbix进阶操作 、 监控案例
查看>>
元类中__new__ 与 __init__的区别--day27
查看>>
占小狼的简书博客
查看>>
struts2__action执行顺序
查看>>
php异常处理
查看>>
[xampp] /usr/bin/env: php: No such file or directory
查看>>