Res*_*ter 6 c++ makefile compilation header-files
我有以下问题.在成功编译之后,如果我在仅更改其中一个.h文件中的某些内容后再次编译它,则计算机会说:
make:没有什么可以为'all'做的.
即使我只修改了.h文件,我是否可以强制编译器再次编译?
如果希望在头文件更改时更新输出,则必须将其添加到依赖项语句中:
myprogram: myprogram.cpp myprogam.h
c++ -o myprogram myprogram.cpp
Run Code Online (Sandbox Code Playgroud)
通常我们不这样做,因为执行操作的代码保留在cpp文件中.如果您使用的是unix并且想要强制重建,只需触摸cpp文件以使用"touch myprogram.cpp"更新其时间戳(强制重建),或者删除现有的可执行文件.
如果你使用没有Makefile的make,让它推断依赖,它可能不会推断出头依赖.在这种情况下,要么吹走可执行文件,要么触摸源文件.