【Linux】第一个程序和make/Makefile

本文介绍了如何在Linux环境下编写简单的程序,讲解了 与 的区别以及缓冲区的概念。通过示例展示了使用usleep和fflush函数。接着,文章详细阐述了Makefile的作用,如何编写Makefile,以及如何利用make命令进行编译。强调了Makefile在大型项目中的重要性,解释了其自动化编译的原理,并给出了删除目标文件和使用.PHONY的示例。
摘要由CSDN通过智能技术生成

这里简单用Linux写第一个程序和用这个程序来帮我们理解make/Makefile

---

printf("%d\n",xxx);

简单的第一个小程序,首先我们要了解\r和\n的区别:

\n:直接向下移动一行,并不移动左右

\r:回到当前行的最左边

假设我们要打印9-1

用\n,就会出现:

9
8
7
6
5
4
3
2
1
0

但是如果用\r,就会出现在一个位置一直变化数字,从9变到1,这个不太好演示,但之后可以直接看效果。

另外要说的一个就是缓冲区的概念

假设我们要打印一个变量,它应该是这样的

printf("%d\n",xxx)

这里的\n就起到了一个刷新缓冲区的效果,如果没有这个\n,那这个变量会先放到缓冲区,如果在这个过程中有什么sleep之类的暂停,那这个变量就不会被拿出来,直到暂停结束。

假设我们用了sleep(),但是又想点让屏幕显示

可以用fflush(stdout),直接刷新

----------

这里就正式开始写

首先我们要用到上面提到的函数:

usleep(以微秒为单位暂停一段时间)

fflush(刷新流中的信息)

 编译一下;

 运行:

 

 

 可以看到效果不错,但是刚刚我们是用gcc编译的,而这篇文章标题的另一部分是makefile,这个makefile又是什么东西?

--------

Makefile

会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力
makefile的效果就是,当一个工程的文件很多,有的文件要先编译,有的要后编译,有的要重新编译,而这些如果要手动,是相当麻烦的事

makefile的好处就是,只要写好,它只需要一个make即可完成编译

就拿我们刚刚写的代码,这里写一个示例:

用makefile之前,我们要先建立一个makefile的文件

随后这么写,这里说一下格式,第一个test是生成的文件名,一个冒号后面跟着的是这个生成的文件需要什么来生成,然后回车,用tab开头,写编译的方式 ,随后我们保存退出

可以看到外面现在是有一个test的,这个时候我们输入make+回车:

 

它会提示说test已经存在,不需要生成

这个时候我们可以直接删除这个test吗,还可以用.PHONY来让它生成,这里先讲第一个,直接删除test

 

再进行make

 

可以看到它自动调用了我们写的执行过程,然后生成了test文件

这里说回第二种方式:.PHONY

这个的意思就是,总是被执行的,可以这么理解,每个文件都有生成时间,这里如果你没有进行修改,那make是不会帮你生成新的,但是如果加上了.PHONY,make就不会管有没有修改更新,它会直接生成新的文件

一般,我们还会写一个析构:

 如果调用的话,就这么调用:

 然后我们ls看一下文件

test已经不在了

这里解释一下,make的原理:

首先它会找名为makefile的文件,然后根据这个文件的内容来生成文件

如果这个生成的文件在目录里面找不到,或者是更新时间比之前生成的新,它会生成一个新的,否则不会生成

--------

以上就是本篇文章的全部内容,希望对你有所帮助 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值