在Linux里写C语言代码一般用gcc编译,如果是一些小的程序可以使用gcc命令编译,但是当我们写一个大的项目的时候,我们总会把头文件,主函数,子函数等分别放到一个文件里,这样可以让代码看起来没有那么长,在排错的时候会更方便一点。可是问题又来了,那么多文件,如果每一个文件都要用gcc -c text.c -o text.o来编译又太过于麻烦,尤其是在每一次排错后重新编译的时候让人有一种崩溃的感觉,所以这个时候用Makefile来编译 .C程序的时候就会方便很多。
在这篇文章里以实现strcmp函数功能作为例子:
先写test.h文件:
main函数文件:
Cmp函数文件:
最后要写Makefile文件:
这里因为这个例子程序还是比较短所以直接以文件名来写命令,在以后的大项目中可以用宏定义的方式替换这些文件名,这样在修改的时候会提供很大的便利。
这个时候在这个文件所在的目录下只要输入 make 命令就可以顺利编译,如果要修改的时候,只要 make clean 就可以将编译后的文件都删除,如果目录中本来就已经存在clean文件的时候,我们可以用
.PHONY:clean
clean:
rm -rf *.o test
就可以让编译器只识别Makefile中的clean命令。