make命令

make命令

make

make 是编译,大多数的源代码包都要经过这一步,编译之前要先有Makefile, Makefile的产生需要./configure (如果没有的话), make 之后会生成可执行程序

make install

这个命令是用来进行安装的,可能有些软件需要先make check后再make test进行一些测试之类的, make install 会将编译好的可执行程序以及文档copy到对应的系统目录。

我是在安装mxnet的时候曾经遇到过这个问题。

./configure

这个的作用主要是确保接下来的make以及make install 所依赖的文件没有问题。

make的退出码

make执行之后会有三个退出码,0,1,2。0表示成功地执行,1表示make运行时出现任何错误,将其返回1,如果使用了-q选项,并且make使得一些目标不需要更新,那么返回2.

知其所以然

GNU make找寻默认的Makefile的顺序是在当前目录下依次找三个文件, “GNUmakefile”,”makefile”,”Makefile”,其按顺序找这三个文件,一旦找到,就开始读取这个文件并执行。

有时候也会看到有.mk的文件,这时候可以这样运行,

make -f file.mk

  • make的默认行为是makefile中的第一个目标,其它目标都是由这个目标连带出来的默认行为。

make可以指定makefile中的目标,那么也有“Wei目标”,从而可以利用这种性质来让我们的makefile根据指定不同的目标来完成不同的事情。

常见的规则

  • all

这个假目标是所有目标的目标,其功能一般是编译所有的目标。

  • clean

这个功能是删除所有被 make创建的文件

  • install

这个目标的功能是安装已编译好的程序,其实就是把目标执行文件拷到指定的目标中去, 从这里可以知道make和make install的区别。

  • check 和 test

这两个是用来测试makefile的流程的。

比如下面就是我见到的一个例子

all:
    python setup.py build_ext --inplace
    rm -rf build
clean:
    rm -rf */*.pyc
    rm -rf */*.so

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦