分类: LINUX
2014-03-20 11:01:38
· ld GNU的链接器
同as一样,ld也是GNU Binutils工具集中重要的工具,Linux 使用ld作为标准的链接程
序,由汇编器产生的目标代码是不能直接在计算机上运行的,它必须经过链接器的处理才能
生成可执行代码,链接是创建一个可执行程序的最后一个步骤,ld可以将多个目标文件链接
成为可执行程序,同时指定了程序在运行时是如何执行的。
· ar 从文件中创建、修改、扩展文件
· gasp 汇编宏处理器
· nm 从目标代码文件中列举所有变量(包括变量值和变量类型),如果没有指定目标
文件,则默认是a.out 文件
· objcopy objcopy工具使用GNU BSD 库,它可以把目标文件的内容从一种文件格式
复制到另一种格式的目标文件中
· add2line 把程序地址转换为文件名和行号
在命令行中带一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指
出在给出的地址上是哪个文件以及行号。
· objdump 显示目标文件信息
objdump工具可以反编译二进制文件,也可以对对象文件进行反汇编,并查看机器代码。
· readelf 显示elf文件信息
readelf命令可以显示符号、段信息、二进制文件格式的信息等,这在分析编译器如何从
源代码创建二进制文件时非常有用。
· ranlib 生成索引以加快对归档文件的访问,并将其保存到这个归档文件中
在索引中列出了归档文件各成员所定义的可重分配目标文件。
· size 列出目标模块或文件的代码尺寸
size 命令可以列出目标文件每一段的大小以及总体的大小。默认情况下,对于每个目标
文件或者一个归档文件中的每个模块只产生一行输出。
· strings 打印可打印的目标代码字符(至少4 个字符),打印字符多少可以控制
对于其他格式的文件,打印字符串。打印某个文件的可打印字符串,这些字符串最少4
个字符长,也可以使用选项“-n”设置字符串的最小长度。默认情况下,它只打印目标文件
初始化和可加载段中的可打印字符;对于其他类型的文件它打印整个文件的可打印字符,这
个程序对于了解非文本文件的内容很有帮助。
· strip 放弃所有符号连接
删除目标文件中的全部或者特定符号。
· c++filt 链接器ld使用该命令可以过滤C++符号和Java 符号,防止重载函数冲突
· gprof 显示程序调用段的各种数据