编译下面的程序
main.c
int sum(int *, int);
int array[2] = {1, 2};
int main()
{
int val = sum(array, 2);
return val;
}
sum.c
int sum(int *a, int n)
{
int i, s= 0;
for(i = 0; i < n; i++)
s += a[i];
return s;
}
在 Linux 下,可以使用 GCC 来编译该程序:
gcc main.c sum.
./a.out
上述过程可以分为 4 个步骤:
源码文件(.c/.cpp)和头文件(.h/.hpp)被预编译器 cpp 预编译成一个 .i 文件。
gcc -E mian.c -o main.i
gcc -E sum.c -o sum.i
或者
cpp main.c -o main.i
cpp sum.c -o sum.i
将预处理完的文件进行一些列词法分析、语法分析、语义分析以及优化后生成相应的汇编代码文件。
gcc -S main.i -o main.s
gcc -S sum.i -o sum.s