【发布时间】:2015-03-25 19:09:18
【问题描述】:
我在理解 Makefile 的概念时遇到了一些麻烦。我正在用 C 编写一个项目,我有两个 .c 文件需要一起编译才能运行程序。我和其他人讨论了一些概念,但仍然无法掌握 Makefile 的概念。这就是我所拥有的。
生成文件:
hs.c:
gcc -o hs hs_util.c hs.c
hs.c 依赖于 hs_util.c 的函数来完成任务。我知道这一点是因为包含了 hs_util 的头文件...
在 hs.c 中:
#include "hs_util.h"
#include "hs_config.h"
在 hs_util.c 中
#include "hs_config.h"
#include "hs_util.h"
当我运行“make”命令时,它显示“make: 'hs.c' is up to date”。这很好,但没有创建 hs 文件。我做错了什么?
【问题讨论】:
-
查看this 和其他示例
-
Make 只是一个声明依赖关系的工具,真的。如果文件比其依赖项之一旧,Make 会看到这一点,并运行您指定的操作来修复这种情况。这样,如果 Makefile 中的依赖项是正确的,则永远不会编译不需要编译的任何内容。这就是Make的目的。当它说“X 是最新的”时,它的意思是,“我找不到重新编译 X 的任何理由;所以我不会。”
标签: c gcc compilation makefile