1. 程式人生 > >GCC 編譯命令GUN工具鏈的使用

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