自学内容网 自学内容网

Linux——环境基础开发工具使用2(正在更新中...)

1.自动化构建-make/Makefile

1.1 认识make和Makefile

make是一个命令;

Makefile是一个文件。

 1.2 理解

其中在第一个图片中,第一行的

mytest:test.c

 叫做依赖关系;第二行的

gcc test.c -o mytest

叫做依赖方法。

依赖关系和依赖方法共同形成目标文件Makefile

1.3 具体语法

make 会自顶向下扫描Makefile文件,默认形成一个目标文件。

如果想要指定形成,make 后面跟一个指定名称。 

 

那么伪目标的作用是什么呢?

在Linux中,伪目标所依赖的方法,总是可以被执行的。 

 当Makefile中的内容是:

此时,只能执行一次编译,那么原因是什么呢?

主要原因是为了提高翻译效率。

那么是怎样判断要不要重新编译的呢?

 对比源文件与可执行文件的修改时间

在之前的博客中,我们提到,文件 = 内容 + 属性

 

对其编译之后,形成——

 形成了以 .c .i .o .s结尾的文件。

使用make clean指令,就可以将其清除掉。

1.4 推导过程

 (图一)

 (图二)

由图一可知,指令是从上到下依次执行的

(图片来自于比特就业课)

 该图片就解释了图一的过程。

根据上述,我们总结Makefile的推导原则——

将依赖方法不断入栈,推导完毕,出栈执行方法。

1.5 更加具有通用性的Makefile 

但是,我们一般不用这个来写,因为其不具有通用性。

 该代码比上一个更好,但是当源文件很多时,就不具有通用性。


原文地址:https://blog.csdn.net/2406_83392683/article/details/143814195

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!