使用gcc hello.c可以将我们的源代码翻译成a.out这个可执行文件
如果要指定可执行文件的名字,如下:

gcc hello.c -o myhello

或者gcc hello.c -o hello.out


-o指定的文件名可以有后缀也可没有
如果没有就生成out.a 这个可执行文件


我们具体的说,gcc hello.c -o myhello
上面这个指令,至少包含了四步
预处理,编译,汇编和连接


预处理 就是处理#define,#if同时还有把#include包含的文件插入到该指令的位置
我们一般使用gcc -E hello.c -o hello.i
预处理生成的文件的后缀名一般是.i
因为#include包含的文件插入到该指令的位置,所以.i文件一般比较大


编译就是词法分析语法分析等等
后缀名一般是.s
命令如下:

gcc -S hello.c -o hello.s


或者

gcc -S hello.i

gcc -S hello.c


这样生成的文件默认名是hello.s


汇编
将汇编代码转化成机器指令(目标文件)
汇编生成的文件后缀名一般是.o
命令如下:

gcc -c hello.s -o hello.o


或者

gcc -c hello.c


上面两个命令作用一样


链接

gcc hello.o -o hello.out






在c.cpp中定义一个

int k=10;


我想在b.cpp中引用等于10的这个k就得在b.cpp中写

extern int k;


此时打印出k,就是10