Makefile教程

Makefile 重新编译

make 程序是一个智能实用程序,它根据您在源文件中所做的更改工作。如果你有四个文件 main.cpp、hello.cpp、factorial.cpp 和 functions.h,那么剩下的所有文件都依赖于 functions.h,而 main.cpp 依赖于 hello.cpp 和 factorial.cpp。因此,如果您对 functions.h 进行任何更改, make 将重新编译所有源文件以生成新的目标文件。但是,如果您在 main.cpp 中进行任何更改,因为它不依赖于任何其他文件,那么只会重新编译 main.cpp 文件,而不会重新编译 help.cpp 和 factorial.cpp。
在编译文件时, make 检查其目标文件并比较时间戳。如果源文件的时间戳比目标文件更新,则假设源文件已更改,则生成新的目标文件。

避免重新编译

可能有一个由数千个文件组成的项目。有时您可能已经更改了一个源文件,但您可能不想重新编译所有依赖它的文件。例如,假设您将宏或声明添加到其他文件所依赖的头文件中。保守地说, make 假设头文件中的任何更改都需要重新编译所有相关文件,但您知道它们不需要重新编译,您宁愿不要浪费时间等待它们编译。
如果您在更改头文件之前就预料到了问题,您可以使用 `-t' 标志。该标志告诉 make 不要运行规则中的命令,而是通过更改其上次修改日期来将目标标记为最新。您需要遵循此程序-
使用命令`make'重新编译真正需要重新编译的源文件。 在头文件中进行更改。 使用命令 `make-t' 将所有目标文件标记为最新。下次运行 make 时,头文件中的更改不会导致任何重新编译。
如果在某些文件确实需要重新编译时已经更改了头文件,那么再这样做就太迟了。相反,您可以使用 `-o file' 标志,它将指定的文件标记为"旧"。这意味着,文件本身不会被重新制作,并且不会以其帐户重新制作任何其他内容。您需要遵循此程序-
使用`make-o header file'重新编译由于独立于特定头文件的原因需要编译的源文件。如果涉及多个头文件,请为每个头文件使用单独的"-o"选项。 使用 `make-t' 更新所有目标文件。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4