源代码(.h .c .cpp)通过预处理器生成预处理后源代码(.i),经编译器后成为汇编代码(.s),通过汇编器生成目标代码,配合启动代码、库代码和其他目标代码通过链接器生成可执行程序(.exe .out)。
在你所在的目录下生成一个程序
touch mycode.c
一般我们直接将源代码编译成为可执行程序,例如
gcc mycode.c -o myname
将源代码生成预处理后源代码(预处理后注释会被删掉,宏定义会被替换,还有导入包)
gcc mycode.c -E
经编译器编译成汇编语言
gcc mycode.i -S
生成二进制文件(已经可以执行)
gcc mycode.s -s
gcc和g++都可以编译C/C++代码。后缀为.c的gcc会把它当做是C程序,g++会当做C++程序。后缀为cpp的二者都会当做C++程序。编译阶段g++会调用gcc,对于c++代码二者是等价的,但是gcc不能自动和C++程序使用的库进行链接,通常用g++完成链接,一般c++编译和链接都是用g++。