编译命令gcc
生成汇编程序(.s)
gcc -S [源文件名]
gcc -S [源文件名] -o [目标文件名]
生成目标文件(.o)
gcc -c [源文件名]
gcc -c [源文件名] -o [目标文件名]
生成可执行文件(.exe / .out)
gcc [源文件名]
gcc [源文件名] -o [目标文件名]
其余命令
gcc --help
链接命令ld
ld -static
指定链接方式为静态链接
ld -T [链接控制脚本]
指定链接控制脚本
ld -e [入口符号]
指定程序入口符号
ld -o [输出文件名]
指定输出的文件名
ld -L [搜索路径]
添加需要链接的文件的搜索路径
例
ld -static -e main HelloWorld.o -o HelloWorld
HelloWorld.o
调试命令
objdump
objdump -a [文件名]
将所有信息列出
objdump -x [文件名]
将文件所有头部段所有信息列出
objdump -S [文件名]
反汇编(含源码)
objdump -t [文件名]
列出符号表
objdump -T [文件名]
列出动态符号表
objdump -r [文件名]
显示重定位信息
objdump -R [文件名]
显示动态链接重定位信息
objdump -j [文件名]
显示指定名称的段的信息
objdump -l [文件名]
用文件名和行号标注相应的目标代码
objdump -F [文件名]
显示在文件中的偏移地址
readlf
readlf -a [文件名]
显示全部信息
readlf -h [文件名]
显示ELF文件开始的文件头信息
readlf -S [文件名]
显示节头信息
readlf -g [文件名]
显示节组信息
readlf -V [文件名]
显示版本段的信息