我为一些c 文件制作了makefile。我在互联网上看到了太多的方法,但我总是遇到同样的问题:运行 make,我被告知:
make: `q_a' is up to date.
我的
Makefile
包含:
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
我的文件夹中没有与目标同名的文件,当我在终端中手动输入它们时,我可以成功执行编译命令。
您尚未指定目标的依赖项。
make 的作用是首先检查您的目标 (
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
。
实际上并不是一个错误;它表明目标 mpi_wavefront 已经构建并且没有任何需要重建目标的更改。本质上,make 认为编译的输出相对于源文件 mpi_wavefront.cpp 是最新的。
make clean make mpi_wavefront