再看这个图的时候,有就一个种一定要能从A-》B-》C-》D单步编译出来。
这么一个程序:
#include <stdio.h>
int main()
{
printf("Hello world!\n");
return 0;
}
1.预处理
cpp hello.c - o hello.i
2.编译
gcc -E hello.i -o hello.s
2.汇编器
as hello.s -o hello.o
2.链接器
ld -e main -dynamic-linker /lib/ld-linux.so.2 -o hello -lc hello.o
(链接出来的程序“helloworld”能够打印出来,但是会有段错误,目前只能用
gcc hello.o -o hello来链接)
这个过程看似无用,但是是在写裸机代码时候包括u-boot的时候没有操作系统的运行就必须自己运行一步步编译。
今天总结的过程不算是完善的,下次还要再细化一下。