第三章 编译与链接
GCC和ELF的介绍
GCC(GNU Compiler Collection,GNU编译器套件)
.S包含头文件,.s是纯汇编语言源文件
ELF文件
可重定位文件(多个C语言文件需要链接在一起才能运行的时候,往往需要在链接的时候对地址进行重定位)
练习3.1
采用gcc -c 只编译不链接,生成目标文件hello.o
利用工具readelf 选项-h 查阅ELF文件的头部ELF Header,可以看到文件类型、版本号、头部大小等信息。
readelf -SW hello.o 查阅section节信息,包含每个节的名字,类型,地址,大小等信息。
将之前生成的hello.o删除,gcc -g -c hello.c加上调试信息重新编译,通过objdump反汇编
练习3.2