【发布时间】:2017-05-17 16:27:31
【问题描述】:
我正在编写一个 gnu make 文件来构建和运行 C++ 单元测试。我让 makefile 将其 .o 文件放在包含 make 文件的同一目录中。
我们有一组不同的 makefile 用于构建我们的交付产品。这些 makefile 将每个 .o 文件放在具有相应 C++ 源文件的同一目录中。
我的单元测试生成文件将其 .o 目标定义为“%.o: %.cpp”。在该 makefile 中,我将 VPATH 定义为具有 .cpp 文件的位置。此外,我的单元测试编译命令使用 g++ MMD 和 MP 选项生成和使用 .d 文件。
这就是我遇到的问题。
我希望我的单元测试 makefile 目标仅通过查看我的单元测试 makefile 目录来评估 .o 目标。
如果产品交付 makefile 已经在源文件所在的位置生成了 .o,我仍然希望我的单元测试 makefile 仅考虑其目录来确定是否需要重建 .o 文件。
但是,这并没有发生。如果产品交付 makefile 已经将 .o 放在源代码所在的位置,则单元测试 makefile 会看到该 .o,并表示不需要构建 .o。
在评估 .o 文件目标时,我有没有办法强制我的单元测试 makefile 只考虑单元测试 make 文件目录?
【问题讨论】:
标签: gnu-make