GCC 編譯命令GUN工具鏈的使用
阿新 • • 發佈:2018-12-15
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