有时似乎没有构建新的可执行文件,即使我需要一个,但我不明白为什么.例如,当我更改Makefile时,但是已经存在可执行文件,并且当我执行'make'时,它不会创建更新的可执行文件.
Makefile的目的不是为了让我不再担心那些东西吗?
如果源文件或任何名为依赖项的头文件比目标文件更新,或者目标文件不存在,则必须重新编译.
它不会改变触发它的Makefile.
make clean删除在此期间创建的所有目标文件.通常,部分重新编译并不重要,即只重新编译您更改的文件,最后将新创建的目标文件与预先存在的目标文件链接起来.尽管如此,如果你想要绝对安全,你应该make clean在make再次运行之前运行.
保留旧目标文件(即从不运行make clean)的示例可能会成为一个问题:假设您已经存在一个已经存在的目标文件,该文件旨在与某个库的1.0版链接.现在你更新你的机器,这将安装1.1版本,其中一些功能与功能1.0不兼容.但是,由于您的目标文件是在编译时期望先前版本,因此链接过程最终会失败.