1、首先在LInux中用文本编辑器编辑两个.c文件并保存,如下图所示
其中main.c的源代码为
/* main.c */
/* $begin main */
int sum(int *a, int n);
int array[2] = {1, 2};
int main()
{
int val = sum(array, 2);
return val;
}
/* $end main */
sum.c的源代码为
/* sum.c */
/* $begin sum */
int sum(int *a, int n)
{
int i, s = 0;
for (i = 0; i < n; i++) {
s += a[i];
}
return s;
}
/* $end sum */
2、在该目录下打开终端,然后分别输入命令gcc -E main.c -o main.i和gcc -E sum.c -o sum.i即可的到两个经过C预处理器(cpp)预处理过后的文件,分别为main.i和sum.i(此时还是可识别的文本文件),如图所示
3、继续输入命令gcc -S main.i -o main.s和gcc -S sum.i -o sum.s即可得到两个.s文件,这是两个经过了汇编器的文件,已经被翻译成了ASCII汇编语言文件(还是可以打开的文本文件),如图所示
4、在终端输入命令as -o main.o main.s和as -o sum.o sum.s即可得到两个.o文件,这是两个经过汇编器处理的可重定位文件,是二进制文件,无法打开了,如图所示
5、最后在终端输入ld -o a main.o sum.o 即可运行链接器将两个.o文件链接在一起,形成一个可执行文件,然后在输入./a即可运行这个可执行文件