Binutil二进制工具集
Binutil是linux下的一个辅助GCC的一个工具集.它包含
as(GNU assemble),用于将汇编转化为object文件。
ld(GNU linker),确定相对地址,把多个object文件、起始代码段(startup)、库(library)等链接起来,形成可执行文件。
add2line: 把执行程序中的一个地址映射到源文件中的对应行。
ar: 创建归档文件(archive)。
nm:列出object文件中的符号。
objdump:用于显示对象的信息。
readelf:显示ELF格式执行文件的各种信息。
size:显示object和执行文件各节(section)的大小和总的大小。
下面是对这些binutils的具体应用。
ar用于建立、修改、提取归档文件(archive),可以认为是一个库
下面一个例子用来介绍ar的使用。
/* sum.c */
int sum(char a,char b)
{
return (int)(a+b);
}
/* debug.c */
#include
void debug()
{
printf("hello world\r\n");
}
[root@localhost ar]# gcc -c debug.c sum.c
生成debug.o和sum.o
[root@localhost ar]# ar rv libtest.a debug.o sum.o
将生成的libtest.a拷贝到/usr/lib下
/* main.c */
#include
int main()
{
int i=10,j=20;
debug();
printf("sum:%d\r\n",sum(i,j));
return 0;
}
[root@localhost ar]# gcc -o main main.c -ltest
-ltest就是刚才编译的库文件。
[root@localhost ar]# ./main
hello world
sum:30
待续...