Linux下的make和makefile

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
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:

Linux下的make和makefile_第1张图片

当对某个文件修改后,make时只被修改的文件重新编译
Linux下的make和makefile_第2张图片

总结:makefile可以提高编译效率,使用make命令每次都只会编译那行修改了的或者依赖修改了的文件(间接修改),没有修改的文件不会重新编译。

你可能感兴趣的:(Linux,linux,运维,服务器)