news 2026/10/8 13:23:46

Linux中的自动化构建——make/Makefile

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux中的自动化构建——make/Makefile

如果想构建大工程项目,Makefile是不可或缺的。因为文件编译等工作我们手动来处理,费时费力,我们需要写Makefile来自动化处理

make是一条指令,Makefile是一个文件,它们两者搭配使用就可以实现自动化构建

Makefile大体结构就是依赖关系和依赖方法的组合,通俗理解,依赖关系是告诉机器起始和目标,依赖方法是告诉机器用什么指令可以完成上述依赖关系

上图就是Makefile的一个示例,可以实现test.c文件编译为可执行文件test

编写完Makefile文件后我们在命令行用make test或者只写make(只写make会自动执行第一条线——test-test.o- test.s-test.i)

我们可以用指令make clean清除可执行文件,依赖关系如果目标不需要依赖,可以不写冒号后面。而.PHONY我们一会再介绍

上述只是示例,我们一般不是这样用的

上幅图只是过渡,不够泛型

上述是Makefile的特殊语法,可以使Makefile更灵活一些

当我们已经有可执行文件test时,我们再次make,Linux会出现这样的字样

这是因为语法的制定者为了提高效率做出的考量,如果我们的源文件test.c没有更新就不需要再次编译——也就是说,编译器会比较test.c和test的最后修改时间,如果前者小于后者就不会再次编译了,而.PHONY会让make忽略源文件和可执行目标文件的修改时间对比

因此引出一个问题,修改时间是什么

Modify是修改时间(取决于文件内容是否被修改)

Change是状态改变时间(取决于文件属性是否被修改),但是文件内容一旦被修改Modify就会被修改,Change一定被修改

Access是访问时间,由于访问文件会很频繁,一访问就修改效率会很低,因此有访问文件不会每次都修改访问时间,可能是隔几次(取决于系统)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 13:20:59

Flink Sliding Window 详解及代码实现

1. 引言 Apache Flink 作为一款分布式流处理引擎,窗口(Window)是其最核心的抽象之一。在实际业务中,我们经常需要统计一段时间内的数据,例如「最近 5 分钟的订单金额」「最近 1 小时的 UV」等。Flink 提供了多种窗口类…

作者头像 李华
网站建设 2026/10/8 13:20:47

PA Agent 演示模式使用教程:零API成本回放历史K线分析记录

PA Agent 演示模式使用教程:零API成本回放历史K线分析记录 【免费下载链接】PA_Agent 项目地址: https://gitcode.com/gh_mirrors/pa/PA_Agent PA Agent 是一款基于价格行为学(Price Action)的 AI K 线分析工具,而它的演示…

作者头像 李华
网站建设 2026/10/8 13:19:55

国产CAD二选一:从天正兼容到信创适配逐项看清

"这两款都是国产CAD,价格差不太多,到底选哪一个?"在帮助企业推进软件国产化的这些年里,这句话几乎是被问得最多的。决策者手里往往摆着几份产品介绍,功能清单看起来都挺齐全,可真要落笔签字&…

作者头像 李华
网站建设 2026/10/8 13:19:50

2026硬核实测|9款主流AI论文工具排名(算力+风控双重测评)

2026年高校AI检测全面升级,只看写作能力、不看风控合规的工具测评全部过时。今年大量毕业生翻车核心原因:用新版大模型写论文,逻辑更丝滑、语句更规整,但机器特征直接拉满,AI检测百分百爆红。本次排名摒弃虚夸宣传&…

作者头像 李华