linux gcc编译常用命令之gun工具链的使用
- 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
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。