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/*
上一篇: 一次头脑风暴
推荐阅读
-
C# Mutex to make sure only one unique application instance started
-
使用make
-
解决python3中自定义wsgi函数,make_server函数报错的问题
-
make_sock: could not bind to address 0.0.0.0:443
-
Electron – 项目打包报错(1): WARNING: Make sure that .NET Framework 4.5 or later and Powershell 3 or later are installed, otherwise extracting the Electron z
-
详解linux下make命令的使用方法
-
详解go语言 make(chan int, 1) 和 make (chan int) 的区别
-
make:arm-linux- conmand not found错误处理探讨
-
在Linux中使用命令行计算器GNU bc的方法
-
linux下make命令实现输出高亮的方法