make linux,make命令详解

各位老铁们好,相信很多人对make linux都不是特别的了解,因此呢,今天就来为大家分享下关于make linux以及make命令详解的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

linux make命令什么意思

Make的概念:

Make这个词,英语的意思是"制作"。Make命令直接用了这个意思,就是要做出某个文件。比如,要做出文件a.txt,就可以执行下面的命令。

代码如下:

$ make a.txt

但是,如果你真的输入这条命令,它并不会起作用。因为Make命令本身并不知道,如何做出a.txt,需要有人告诉它,如何调用其他命令完成这个目标。

比如,假设文件 a.txt依赖于 b.txt和 c.txt,是后面两个文件连接(cat命令)的产物。那么,make需要知道下面的规则。

代码如下:

a.txt: b.txt c.txt

cat b.txt c.txt> a.txt

也就是说,make a.txt这条命令的背后,实际上分成两步:第一步,确认 b.txt和 c.txt必须已经存在,第二步使用 cat命令将这个两个文件合并,输出为新文件。

像这样的规则,都写在一个叫做Makefile的文件中,Make命令依赖这个文件进行构建。Makefile文件也可以写为makefile,或者用命令行参数指定为其他文件名。

代码如下:

$ make-f rules.txt

#或者

$ make--file=rules.txt

上面代码指定make命令依据rules.txt文件中的规则,进行构建。

总之,make只是一个根据指定的Shell命令进行构建的工具。它的规则很简单,你规定要构建哪个文件、它依赖哪些源文件,当那些文件有变动时,如何重新构建它。

make是linux的自带的还是需要安装编译器才有make功能

make程序不是Linux系统自带的,也不是编译器带的,不要按照IDE的概念去理解(Windows下面的IDE一安装什么工具都有了),make工具是需要另外安装的。

比如说我的Linux系统上,当时搭建开发环境时是这样安装的:(我的系统是Fedora,所以用的yum)

yum install make gcc gcc-c++

看,编译器和make是分开安装的哈。

make工具是需要makefile的时候才用,而makefile是多个源文件的时候才有,如果你编译一个helloworld程序,直接用gcc或g++编译就可以了,从这点来看,也没理由把make和编译器捆绑在一起。

linux下的make命令使用问题

打错了罢?是make&& make intall

&&是 shell的逻辑 and(和),如果前面的命令执行失败,(true or flase)

退出状态不是 0,就不会执行后面的命令,

最后命令的退出状态会在 shell默认变量$?找到,例

nc10@your-5554c55be4~

$ ls

Mail/ doc/ hh* matrix/ sign.dat trash

News/ ee* junk numsorted* socket.awk* ttt.awk*

bin/ ex30.sh* lib/ pp* software/

crack_allword.txt hex2dec.awk lynx.cfg sign tmp/

nc10@your-5554c55be4~

$ test-f"pp"&& echo"yes, you have it"

yes, you have it

nc10@your-5554c55be4~

$ echo$?

0

nc10@your-5554c55be4~

$ test-f"lllll"&& echo"yes, you have it"

nc10@your-5554c55be4~

$ echo$?

1

nc10@your-5554c55be4~

$

第二次执行测试文件 lllll,没有这文件, test名令执行失败,

(条件为假(flase)),随后的命令就不执行

nc10@your-5554c55be4~

$ test-f"lllll"; echo"yes, you have it"

yes, you have it

nc10@your-5554c55be4~

$

分开两个命令,那不管前面执行如何,随后的还是会执行

如果分成两 make; make install,那make编译有错误的话,还是会照样

install,但安装的程序不能用哦.

Is that clear?:)

阅读剩余
THE END