我正在编写一个gnu make文件来构建和运行C ++单元测试。我让makefile将其.o文件放在保存make文件的同一目录中。
我们有一套不同的makefile用于构建我们的产品以进行交付。这些makefile将每个.o文件放在具有相应C ++源文件的同一目录中。
我的单元测试makefile将其.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文件目录?
答案 0 :(得分:1)
您是说通过.o
设置找到了VPATH
文件吗?
您可以使用特定于模式的vpath
来限制查找特定类型的文件:
vpath %.cpp $(SRCDIR)
而不是设置全局VPATH