摘要: ELF文件有三种类型:可重定位文件:也就是通常称的目标文件,后缀为.o。共享文件:也就是通常称的库文件,后缀为.so。可执行文件:本文主要讨论的文件格式,总的来说,可执行文件的格式与上述两种文件的格式之间的区别主要在于观察的角度不同:一种称为连接视图(Linking View),一种称为执行视图(Execution View)。elf文件的格式可以通过readelf命令读取出来-a --all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I. -h --file-header 显示elf文件开始的文件头信息. -l --program-headers --segme 阅读全文
posted @ 2013-03-08 21:07 JustinYo 阅读(639) 评论(0) 推荐(0)
摘要: int main(int argc, char** argv){return 1;}g++ -S test.cpp生成test.s汇编文件 .file "null-test.cpp" .text .globl main .type main, @functionmain:.LFB0: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq %rsp, %rbp .cfi_def_cfa_register 6 movl %edi, -4(%rbp) movq %rsi, -16... 阅读全文
posted @ 2013-03-08 20:33 JustinYo 阅读(7845) 评论(2) 推荐(1)
摘要: -c 只激活预处理,编译,和汇编,也就是他只把程序做成obj文件 例子用法: gcc -c hello.c 他将生成.o的obj文件-S 只激活预处理和编译,就是指把文件编译成为汇编代码。 例子用法 gcc -S hello.c 他将生成.s的汇编代码,你可以用文本编辑器察看-E 只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. 例子用法: gcc -E hello.c > pianoapan.txt gcc -E hello.c | more 慢慢看吧,一个hello word 也要与处理成800行的代码-o 制定目标名称,缺省的时候,gcc 编... 阅读全文
posted @ 2013-03-08 19:19 JustinYo 阅读(1911) 评论(0) 推荐(0)