1)安装make
make:一个自动化编译工具
sudo apt install make
2)makefile文件:Linux上的工程管理工具,可以实现自动化编译。(可以部分编译:修改了其中的几个文件的内容,大部分文件没有被修改时,只是编译修改过的文件,即自动化编译)
简单makefile文件示例:
准备三个文件:
//add.c
int add(int a,int b)
{
return a+b;
}
// max.c
int max(int x,int y)
{
return x>y?x:y;
}
//main.c
#include<stdio.h>
int add(int a,int b);
int max(int x,int y);
int main()
{
int a=5,b=10;
printf("a+b=%d \n",add(a,b));
printf("max=%d \n",max(a,b));
printf("Hello\n");
return 0;
}
自己手写一个makefile文件:(重点)
vim makefile
注意:顶格 Tab键
了解makefile生成规则
all:main
main:add.o max.o main.o
gcc -o main add.o max.o main.o
add.o:add.c
gcc -c add.c
max.o:max.c
gcc -c max.c
main.o:main.c
gcc -c main.c
clean:
rm -rf *.o main
make:
当对某个文件修改后,make时只被修改的文件重新编译
总结:makefile可以提高编译效率,使用make命令每次都只会编译那行修改了的或者依赖修改了的文件(间接修改),没有修改的文件不会重新编译。