GCC
下篇博客将介绍Makefile的使用,在此之前需要了解一下GCC的一些基本用法。
建立如下的demo.c文件
#include <stdio.h>
int main(void)
{
printf("hello world\n");
}
使用gcc来编译该文件,会生成a.out的可执行文件
gcc demo.c
可以使用-o选项来指定输出的文件名
执行如下命令会生成hello可执行文件
gcc demo.c -o hello
我们可以把编译过程分为3个部分:预处理、汇编+编译、链接
使用-E选项进行预处理
gcc -E demo.c -o hello.c
查看hello.c文件,可以看见头文件被全部包含进来了,预处理会把带#的代码(如#include、#define、#ifndef等)进行处理
使用-c选项可以进行汇编+编译,生成.o文件
我们将建立3个文件进行测试
首先是add.h文件,它只包含了函数的声明
int add(int,int);
然后使add.c文件,它包含了add函数的实现
int add(int a,int b)
{
return (a+b);
}
然后是我们的测试函数test.c,它包含了头文件add.h
#include "add.h"
#include <stdio.h>
int main(void)
{
printf("1+1=%d\n",add(1,1));
}
使用-c选项将两个文件进行汇编+编译
gcc -c add.c -o add.o
gcc -c test.c -o test.o
使用下面命令对两个.o文件进行链接,生成可执行文件
gcc test.o add.o -o test