您的位置:首页 > 运维架构 > Linux

linux gcc编译常用命令之gun工具链的使用

2017-01-08 23:25 621 查看
http://edu.51cto.com/lesson/id-20331.html
linux  gcc编译常用命令之gun工具链的使用

Binutils源码工具包中的常用命令:
gcc g++ ld ldd  nm strings   readelf addr2line strip
objcopy as ar gdb

1、gcc/g++编译器
示例:
gcc -c test.c
gcc -o test test.c
gcc -E -o test.i test.c
gcc -g -o test test.c

2、addr2line  把程序地址转换为文件名和行号,需要编译时加-g
示例:
addr2line a.out -a 804854c

3、ar 打包提取归档文件
ar rv libtest.a test.o

4、as gcc用来输出汇编文件,产生目标文件由连接器ld链接
示例:
gcc -S tty.c -o tty.s
as -o tty.o tty.s

5、nm 查看导出符号,列出目标文件的符号
示例:
nm -o libtest.so

6、objcopy 文件格式转换

7、objdump 反编译
示例:
objdump -T libtest.so
objdump -d a.out

7、ranlib产生归档文件索引,并将其保存到这个归档文件

8、readelf 显示elf格式可执行文件信息
示例:
readelf -h a.out

9、size 列出目标文件每一段的大小以及总体大小
示例:
size a.out

10、strings 打印目标文件中的可打印字符
示例:
strings /lib64/libc.so.6 | grep GLIBC_

11、strip 丢弃目标文件中的全部或特定符号,减少体积
示例:
strip a.out

12、ldd  用于判断某个可执行的elf档案引用什么动态库
示例:
ldd -v libtest.so

13、查看so导出函数
nm -D 7z.so
objdump -tT 7z.so
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: