Makefile获取目录中的所有目标文件

Makefile getting all object files in a directory

本文关键字:目标 文件 获取 Makefile      更新时间:2023-10-16

我目前有一个c++ google测试项目,它依赖于另一个要先构建的程序。在我的谷歌测试测试项目makefile我试图得到它正在测试的项目中的所有目标文件。例如:

USER_OBJS = $(PROJECT_BEING_TESTED_PATH)/class1.o
USER_OBJS = $(PROJECT_BEING_TESTED_PATH)/class2.o
USER_OBJS = $(PROJECT_BEING_TESTED_PATH)/class3.o

然而,每当有一个类被添加或删除到正在测试的项目中,那么我必须在我的makefile中手动更改USER_OBJS。有了自动化测试,这就变成了一个麻烦。有人知道我如何能使USER_OBJS只是得到所有的目标文件在测试项目?我尝试了以下操作:

USER_OBJS := $(PROJECT_BEING_TESTED_PATH)/$(wildcard *.o)

仍然不起作用。什么好主意吗?

如果您只需要(class1。o, class2。

USER_OBJS = $(wildcard $(PROJECT_BEING_TESTED_PATH)/class[1-3].o)

如果你想要所有的目标文件,使用…

USER_OBJS = $(wildcard $(PROJECT_BEING_TESTED_PATH)/*.o)

使用"通配符"的正确方法是:

USER_OBJS = $(wildcard $(PROJECT_BEING_TESTED_PATH)/*.o)