我为一些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
我的文件夹中没有相同名称的文件,我可以在终端写入时编译它们。你能帮我吗?提前致谢!
答案 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
。