Makefile:...是最新的

时间:2014-02-15 08:17:34

标签: c makefile

我为一些c文件制作了一个makefile。我在互联网上看到了太多的方法,但我总是遇到同样的问题:make:`q_a'是最新的。

q_a: 
gcc -o q_a quick_sort_i.c

q_g: 
gcc -o q_g quick_sort_g.c

s_a: 
gcc -o s_a shell_sort_i.c

s_g: 
gcc -o s_g shell_sort_g.c

fork: 
gcc -o fork fork.c

我的文件夹中没有相同名称的文件,我可以在终端写入时编译它们。你能帮我吗?提前致谢!

1 个答案:

答案 0 :(得分:5)

您尚未为目标指定依赖项。

做什么,首先检查你的目标(q_a)是否作为一个文件存在,如果存在,如果它的依赖关系是新的(如,有更近的修改时间)作为你的目标。只有当它需要更新(它不存在或依赖性更新)时才会执行规则。

这意味着,如果每次更改q_a时都需要重新编译quick_sort_i.c,则需要将其作为依赖项添加到q_a,如下所示:

q_a: quick_sort_i.c
    gcc -o q_a quick_sort_i.c

如果需要,make会重新编译q_a