short for | : | GNU make |
是什么 ? | : | a build system automatically determines which pieces of a package need to be (re)compiled and then issues the relevant commands. |
开发语言 | : | C |
开发组织 | : | GNU |
官方主页 | : | https://www.gnu.org/software/make |
同类软件 | : | BSD make、ninja |
操作系统 | 包管理器 | 安装命令 |
---|---|---|
Windows | scoop | scoop install make |
Windows | Chocolatey | choco install -y make |
macOS | HomeBrew | brew install make |
GNU/Linux | HomeBrew | brew install make |
apt | sudo apt-get install -y make | |
CentOS | yum | sudo yum install -y make |
dnf | sudo dnf install -y make | |
openSUSE | zypper | sudo zypper install -y make |
Alpine Linux | apk | sudo apk add make |
pacman | sudo pacman -Syyu --noconfirm | |
Gentoo Linux | Portage | sudo emerge make |
make
命令的使用格式如下:
make [option]... [VARIABLE=VLAUE]... [target]...
VARIABLE
既可以是操作系统的环境变量,也可以是Makefile
中的变量。
target
是在Makefile
中定义的。
当没有指定target
的时候,make
会从上到下遇到的第一个target
当成默认目标来执行。
-f
指定Makefile
的文件路径。
make
默认会寻找当前目录下的文件名是makefile
或者Makefile
的文件来执行, 如果您的Makefile
的文件名不是makefile
或者Makefile
,或者不在当前目录下, 那么就必须要使用-f
参数来指定。
make -f /etc/make.conf clean
-j
参数用于指定job
的数量。
-j
参数的值需要根据您自己的机器的CPU
的核的数量来决定, 以充分利用多核CPU
的计算力,来提高效率。
make -j 4 build
没有依赖文件的目标,就是一个伪目标。
示例:
init:
mkdir bin