如何详细解析基于make命令的makefile文件?

2026-05-23 14:051阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1888个文字,预计阅读时间需要8分钟。

如何详细解析基于make命令的makefile文件?

在处理多个源文件编写C/C++测试程序时,我们通常习惯于逐处修改代码,然后编译运行以查看结果。这种编译方式对小型项目来说问题不大,但对于大型项目来说,效率较低。

一、多个源文件带来的问题

在编写c/c++测试程序时,我们习惯每次修改一处代码,然后就马上编译运行来查看运行的结果。这种编译方式对于小程序来说是没有多大问题的,可对于大型程序来说,由于包含了大量的源文件,如果每次改动一个地方都需要编译所有的源文件,这个简单的直接编译所有源文件方式对程序员来说简直是噩耗。

我们看一个例子:

// main.c #include "a.h" // 2.c #include "a.h" #include "b.h" // 3.c #include "b.h" #include "c.h"

如果程序员只修改了头文件c.h,则源文件main.c和2.c都无需编译,因为它们不依赖这个头文件。而对3.c来说,由于它包含了c.h,所以在头文件c.h改动后,就必须得新编译。

而如果改动了b.h可是忘记编译了2.c,那么最终的程序就可能无法正常工作。

make 工具就是为了解决上述问题而出现的,它会在必要时重新编译所有受改动影响的源文件。

二、make 命令

make命令本身支持许多选项,最常用的是-f选项。如果我们直接运行

make

那么make命令会首先在当前目录查找名为makefile的文件,如果找不到,就会查找名为Makefile的文件。

阅读全文

本文共计1888个文字,预计阅读时间需要8分钟。

如何详细解析基于make命令的makefile文件?

在处理多个源文件编写C/C++测试程序时,我们通常习惯于逐处修改代码,然后编译运行以查看结果。这种编译方式对小型项目来说问题不大,但对于大型项目来说,效率较低。

一、多个源文件带来的问题

在编写c/c++测试程序时,我们习惯每次修改一处代码,然后就马上编译运行来查看运行的结果。这种编译方式对于小程序来说是没有多大问题的,可对于大型程序来说,由于包含了大量的源文件,如果每次改动一个地方都需要编译所有的源文件,这个简单的直接编译所有源文件方式对程序员来说简直是噩耗。

我们看一个例子:

// main.c #include "a.h" // 2.c #include "a.h" #include "b.h" // 3.c #include "b.h" #include "c.h"

如果程序员只修改了头文件c.h,则源文件main.c和2.c都无需编译,因为它们不依赖这个头文件。而对3.c来说,由于它包含了c.h,所以在头文件c.h改动后,就必须得新编译。

而如果改动了b.h可是忘记编译了2.c,那么最终的程序就可能无法正常工作。

make 工具就是为了解决上述问题而出现的,它会在必要时重新编译所有受改动影响的源文件。

二、make 命令

make命令本身支持许多选项,最常用的是-f选项。如果我们直接运行

make

那么make命令会首先在当前目录查找名为makefile的文件,如果找不到,就会查找名为Makefile的文件。

阅读全文