Linux使用makefile的用法

一、明白使用makefile的原因

有时候我们在写命令的时候要写很多命令,有一些命令还是重复的命令,我们只需要把这些命令和依赖关系弄明白,把这些常用的命令写进makefile里面就可以了。

二、make的原理

注意:我们有时候写了几组命令并且期待他们能够全部运行,但是make工作的时候先找第一个依赖目标。然后找第一个目标的依赖关系,如果完成了之后就不会再进行了。

所以我们要用一种方法把他们两个联系起来,一般是用all:来当第一个目标,跟两个建立依赖关系,这样就能执行到第二个目标libmath56


三、使用makefile的用法


注意一些格式:冒号前面是想生成的文件,冒号后面的是它所依赖的文件,就是从哪个文件才能变过来,然后找到之后回车按一下tab键继续输入命令。

我这里面写的clean是为了清除临时文件,这些临时文件可能会影响编译活动。还有那*.o的意识是通配符的意思。

 clean强制删除临时文件,.o文件和可执行文件以便下面更方便修改

下面我再举一个例子来看清除他的依赖关系是怎么样的,我先把.c文件变成.o,再把.o的文件变成可执行文件。


可以看出来我先写的第一句,hello是依赖于.o的,但是文件里面没有.o文件,所以它暂时不执行,到了第二句hello.o是依赖于.c的,他就执行,然后再回去执行第一句。



可以看出我的文件夹里面出来了.o和可执行文件。

注意的事项

(1)关于头文件的引用,有时候在makefile文件中写代码make 的时候会发现缺少头文件,这时候就需要用-I来指定头文件的路径

  

还要注意gcc命令后面是不能加空格的。

(2)有时候会出现一些错误,比如下面的错误


这是跟make的机制有关系的,make工具在使用的时候会看看文件是不是有修改的地方,如果没有修改的话它是不会去重新编译的。

(3)一个依赖关系下面可以有多行命令,命令之间是可以用&&来连接的。

 

但是注意cd命令只能管一行命令,如果另起一行要重新写cd,如果加上一个反斜杠/  的话,续行符是可以转到下一行直接写代码,不需要再加一个tab键。

(4)


subprog意思是子文件,cd到子文件下面。
子文件中的makefile文件只对子文件中的文件进行编译。
可以看出在子文件中也有一个make。

四、Makefile中变量的使用


(1)环境变量:装在操作系统上,如果电脑装的应用想使用一个共同变量就从环境变量里面找。

(2)变量的应用:(下面这个图开头代替gcc的变量是CC)


我们可以看出变量可以代替文件的路径,gcc和g++等命令,文件类型,库文件,这样的好处就是到时候直接修改变量的值就行了。

(如果库文件在根目录下面有的话,就不用写-L(指定搜索路径)了)

注意:讲一下通配符:


这个意思就是所遇哦*.o的文件生成一个test文件。

五、安装


install表示安装,意思就装到bin文件夹中,bin文件夹中都是可执行文件,也就是说我们可以自己创造命令,到时候直接调用就行了,这就是安装。

六、后缀规则:


它表示所有的.o文件依赖于.c文件,$表示依赖关系的第一个文件,


这两种写法一样,INCLUDE是变量。

七、在makefile中可以调用头文件。



  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值