上一篇博客我们为make编译做了一个铺垫,现在让我们开始多文件编译吧,毕竟当我们代码太多时,不可能将所有代码都放在一个C文件里。
我们再写一个lib.c文件,输入以下代码:
void initial(){
printf("This is a travel to no end.\r\n");
}
新建lib.h文件,输入以下代码:
void initial();
将moon.c做如下更改:
#include <stdio.h>
#include "lib.c"
int main(){
initial();
printf("I am MonooseOS.\r\n");
}
输入以下命令进行编译:
gcc -o x moon.c
下边的截图看一下运行效果,符合预期效果。
下边我们编写makefile文件实现自动化编译
m:moon.c lib.c
gcc moon.c -o x
clean:
rm x
下边的两行可以省略,当我们执行make clean后会删除之前生成的可执行文件。
甚至第一行后边的lib.c也可以省略,编译时会自动寻找lib.c文件
优化编译
我们上边的写法会把所有文件都编译一下,可能你只修改了其中一个依赖文件,当文件较多时会浪费大量时间。下一篇我们讲优化编译,即仅编译修改的部分。