【hello Linux】Linux项目自动化构建工具-make/Makefile

目录

1.make/Makefile的背景

2. 实例代码

2.1 常规代码执行过程:

2.2 使用make工具执行代码程序:

3. makefile文件内容的解释

3.1 生成解决方案 

3.2 清理解决方案

4. 多文件的makefile文件书写

5. 缓冲区



 Linux🌷

1.make/Makefile的背景

1. 会不会写 makefile ,从一个侧面说明了一个人是否具备完成大型工程的能力;
2. 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中, makefile
义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新
编译,甚至于进行更复杂的功能操作;
3. makefile 带来的好处就是 ——“ 自动化编译 ,一旦写好,只需要一个 make 命令,整个工程
完全自动编译,极大的提高了软件开发的效率;
4. make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE
都有这个命令,比如:Delphi make Visual C++ nmake Linux GNU make 。可见,
makefifile 都成为了一种在工程方面的编译方法;
5. make 是一条命令, makefifile 是一个文件,两个搭配使用,完成项目自动化构建。

说了它的背景,那它到底是干什么的呢?有什么用呢?

下面看个例子!

2. 实例代码

2.1 常规代码执行过程:

1. 我们首先创建一个要编写代码的.c文件;

 2. 在.c文件中编写的代码如下;

 3. 我们对它进行编译生成可执行的文件hello;

 4. 执行hello文件;

上述便是我们常规的编写一个代码,并对其进行执行的过程。

那还有没有其他办法执行程序呢?

2.2 使用make工具执行代码程序:

1. 编写要执行的.c源文件代码程序;

2. 创建makefile文件,建立起源文件和目标文件的依赖关系;

 3. 执行make我们发现出现了可执行程序hello;

 4. 执行hello程序;

经过上述例子,我们发现通过makefile工具我们也可以实现程序的编译功能。

3. makefile文件内容的解释

3.1 生成解决方案 

上述所示是make的解决方案,在命令行中输入make便会执行依赖方法中的命令。

3.2 清理解决方案

上述所示是make clean的清理解决方案,在命令行中输入make clean则会执行clean:下方的语句

综述:

编写了makefile文件后,我们输入make则意味着输入了编译的命名;

输入make clean 这意味着输入了删除可执行程序的命令。

对于我们以后在Linux系统下进行代码的编译和清理都是非常方便的。

补充:

我们通过此命令也可以完成文件的编译工作。

4. 多文件的makefile文件书写

我们也可以在makefiel文件中添加多层依赖关系,达到多文件的编译工作:

同样可以完成上述功能

5. 缓冲区

在Linux系统中是存在缓冲区的,输入的数据显示的时候不会直接显示到显示器上,而是会先

保存在一个缓冲区中,这个缓冲区是以行为单位进行刷新的,直到缓冲区满、或者是遇到

\n、或者程序结束,才会输出到显示器上。

下面给个简单的例子具体体验下:

输出hello linux!后,在下一行中停5秒,然后才会出现命令行的输出操作!

 没加\n,我们执行./hello命令后看到首先停5秒后,才输出hello linux!

这是为什么?程序难道不是顺序执行的吗?

程序当然是顺序执行的,但是hello linux!语句首先被保存在缓冲区中,此语句太短,达不到缓冲区

行刷新的要求,那么停5秒,然后程序退出时,才会将缓冲区的内容刷新到显示器上。

有没有什么办法能将缓冲区的数据立即刷新到显示器上呢?

fflush则可以达到此效果。

坚持打卡!😃

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瞳绣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值