欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

GNU make

程序员文章站 2022-07-14 15:24:56
...

linux编译c文件成可执行文件一般都会用make.比如用源码方式编译redis,你使用

make && make install

就会生成redis-cli等二进制文件。

make的目的就是使软件安装者不需要知道某个软件安装细节,仅仅通过上面的命令就可以安装成功。

而核心语法就是下面这条:

<target> : <prerequisites> 
[tab]  <commands>

我们不生产编译工具,我们只是编译工具的搬运工。不像mvn那样,我就可以构建Java。make任何项目都可以构建。原因就是:make只是编译逻辑的组织者

target:

要编译的目标。比如目标A文件发生改动,则make就确定要编译目标A文件需要重新编译。

prerequisites

依赖清单。比如people.c依赖leg.c,需要调用leg.c的一个函数,那么people.c就是目标(target),依赖(prerequisites)就是leg.c.

commands:

要编译目标,比如people.c需要运行什么命令。比如commands可以是gcc people.c leg.c.

伪目标(phony target)

一个很简单的例子,比如一个简单的清理任务就是删除整个编译目录。这种类型的任务怎么套到那个语法上呢?

这种类型的构建任务叫做伪目标,即没有目标编译文件,而是个任务。类似mvn clean.

# 执行一个叫clean的任务,运行命令行rm -rf target/*
clean:
    rm -rf target/*
相关标签: 构建工具