以test.c为例,它将经历以下步骤:
1. 预处理:预处理器cpp 将test.c的宏展开和include 文件进行导入
cpp test.c test.i 或者 gcc -E test.c -o test.i
2. 编译:编译器cc 将test.i编译成汇编文件
cc/g++ -S test.i -o test.s 或者 gcc -S test.c -o test.s
3. 汇编:汇编器as 将test.s 编译成目标文件,可用nm来查看生成的符号
as test.s -o test.o 或者 gcc -c test.c -o test.o
4. 链接:连接器ld 将test.o 和外部符号链接变为可执行文件
ld 还不知道怎么做的 或者 gcc test.o 这里将默认生成a.out的权限为可执行的文件
或者 gcc test.o > test,会生成a.out和test可执行文件,但test要 chmod u+x test
以上步骤可直接执行:gcc test.c -o test.
阅读(524) | 评论(0) | 转发(0) |