-I /home/hello/include表示将/home/hello/include目录作为第一个寻找头文件的目录,寻找的顺序是:/home/hello/include-->/usr/include-->/usr/local/include
-L /home/hello/lib表示将/home/hello/lib目录作为第一个寻找库文件的目录,寻找的顺序是:/home/hello/lib-->/lib-->/usr/lib-->/usr/local/lib
-lworld表示在上面的lib的路径中寻找libworld.so动态库文件(如果gcc编译选项中加入了“-static”表示寻找libworld.a静态库文件)
$@:目标文件
$^:所有的依赖文件
$<:第一个依赖文件
预处理:gcc -E hello.c -o hello.i 编译:gcc -S hello.i -o hello.s 汇编:gcc -c hello.s -o hello.o 链接:gcc hello.o -o hello
gcc -c -o hello.o hello.c gcc -c hello.c -o hello.o
编译时,编译器只检测程序语法是否正确,函数变量的声明是否正确;链接时,主要链接函数和全局变量,