编译和链接
将一个c/cpp文件转化为可执行文件,会经过预编译、编译、汇编和链接的过程。用户看不到这个过程,因为被编译器隐藏掉了。
以源文件sum.c为例说明四个操作。
//sum.c
#include<stdio.h>
#define NUM1 1
#define NUM2 2
int sum(int num1, int num2)\
{
int s = 0;
s = num1 + num2;
return s;
}
int main()
{
int s = 0;
int num1 = NUM1;
int num2 = NUM2;
s = sum(num1, num2);
return 0;
}
$gcc sum.c -o sum
Linux命令行编译,和Windows的IDE没啥区别。一步生成可以执行文件sum,-o表示指定生成文件名(默认a.out)。下面将该指令分解:
1. 预编译
第一步预编译相当于如下指令(-E表示只进行预编译):
$gcc -E sum.c -o sum.i
查看sum.i文件可以看到sum和main函数没有变化,#include<stdio.h>宏定义不在了