LInux基本工具——工程管理工具makefile详细介绍

工程管理工具

  • 目的:解决大型项目中模块之间的以来问题

注:一般生成文件指令都是:gcc  teat.c   -g  -o  test       由test.c生成可执行文件test

makefile:这是四十多年前的工具,当前在实际工作中几乎都不会手写makefile文件,但是必须要学它,当前的现代C/C++工程管理工具本质都是通过自动化的方式生成,其原理也都归结于makefile。

步骤:

        一、首先是vim Makefile     注:这个文件名是固定的,M/m都一样

        二、cd进入Makefile

makefile的组成:

[target]:[dependent]            [目标]:[依赖]
     [command]                            [命令]

目标:就是要生成的内容   (test)

依赖:由什么文件生成     (test.c)

命令:生成命令       (gcc  teat.c   -g  -o  test)

这就是最简单的Makefile文件!!

三、编辑完成后,保存退出,命令行输入make。

make:make的作用是查看当前是否有makefile这个文件,如果有就会自动解析,并检查依赖。

如果依赖改变了,就要make生成。主要是判断时间是否改变(最后一次修改时间)。命令ll(两个LL就是ls -l)看到的时间就是最后一次修改时间。

注:vim是增量编译(哪一部分代码改了,编译那一部分代码),还有一种全量编译(全量编译就是只要代码改了就编译全部代码),大大提高了效率。现在c++标准最新的是c++17(17年的标准),下次是c++20(20年的标准)它会引入模块,期待吧~~~

有时候Makefile中可以添加清除,不需要由依赖

例如:clean:

                  rm test

一个Makefile可以生成多个目标,有的目标并不是为了要生成个东西,仅仅是为了一些特定的动作,最典型的就是clean(清空之前生成的目标)。

注:像clean这样只是为了执行一个动作,而不是要生成一个文件,但是如果此时目录中由clean这个文件,就会影响动作执行,此时就可以使用 .PHONY  把clean变成伪目标。

可以在make命令后面带上参数(参数就是要生成的目标)。换言之,makefile中有多个目标,直接敲make默认生成第一个目标。

make命令的执行过程:

  1. 先在当前目录中查找Makefile/makefile文件
  2. 找到生成目标(决定是否要真的生成,会检查生成的文件是不是最新的)
  3. 检查依赖文件是否存在
  4. 执行生成动作的命令

常见的现代类似写Makefile一样的工具:

CMake:开源世界中广泛使用的构建工具。

Blaze(火焰刀):比较重量级的工具(谷歌开发的)。

//Makefile

.PHONY:all
all : reader writer   //一个make生成所有的


reader:reader.c
	gcc $^ -o $@

writer : writer.c
	gcc $^ -o $@

.PHONY:clean
clean:
	   rm reader writer

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值