当前位置: 首页> 科技> 互联网 > Linux项目自动化构建工具:make/makefile

Linux项目自动化构建工具:make/makefile

时间:2025/9/5 15:02:00来源:https://blog.csdn.net/2301_76197086/article/details/141858814 浏览次数:2次

一、makefile的使用

创建一个名称为makefile的文件,使用vim编辑器在该文件中写入依赖关系和依赖方法

//第一对依赖关系和依赖方法
test1.exe:test1.c//依赖关系gcc test1.c -o test1.exe//依赖方法//第二对依赖关系和依赖方法.PHONY: cleanclean://依赖关系rm -rf test1.exe//依赖方法

在依赖关系中,冒号前面的是目标文件,冒号后面的是依赖文件列表

目标文件是依赖于依赖文件的,依赖文件可以为空;也可以有多个依赖文件,用空格分隔

.PHONY作用:表明该依赖关系对应的依赖方法总是要被执行的,不会被拦截

makefile文件创建好后,直接使用make调用,默认调用的是第一个目标文件对应的依赖方法,如果调用其他目标文件,则需要使用make + 目标文件名 

个人理解:依赖关系就是函数名和参数列表;依赖方法就是函数体

二、makefile的原理

以下列代码为例

hello:hello.o gcc hello.o -o hello 
hello.o:hello.s gcc -c hello.s -o hello.o 
hello.s:hello.i gcc -S hello.i -o hello.s 
hello.i:hello.c gcc -E hello.c -o hello.i
  • 默认情况下,直接调用make,在当前目录下找到名为makefile/Makefile的文件
  • 找到文件中的第一个目标文件,即hello,将这个文件作为最终的目标文件
  • 如果hello不存在(或者hello依赖的文件hello.o修改时间比hello新),则执行其依赖方法生成hello文件
  • 如果hello依赖的文件hello.o不存在,则在makefile文件中找到hello.o目标文件,执行其以来方法生成hello.o文件
  • 如果hello.o依赖的hello.i文件也不存在,同样是按照上面的流程一层一层地寻找依赖关系,直到最终生成第一个目标文件
  • 在找寻依赖关系的过程中,如果出现错误(例如某个依赖文件找不到),则make会直接退出并报错
关键字:Linux项目自动化构建工具:make/makefile

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: