我在我的src
文件夹中有一个文件夹结构,我想将其保存在我的obj
文件夹中,其中所有.o
文件都包含在该文件夹中。我不想使用mkdir
,因为跨平台使用会出现许多问题。相反,我做了具有不同输入和输出名称的Makefile通配符
$(OBJECTS) := $(patsubst %,obj/%,$(subst /,_,$(SOURCES)))
现在的问题是,是创建这些文件是不同的规则,这意味着做
$(OBJECTS): obj/%.o: %.cpp
# whatever compile command
不再起作用的输入和输出文件名,因为一个例子输出为obj/Core_Graphics_Window.o
,输入为Core/Graphics/Window.cpp
。
这还能完成吗?
事情是,我不能使用'obj /%。o:%.cpp',因为文件名是不同的; ''%'将不会相同 – kim366
如果您放弃重命名对象,即Windows.cpp的目标文件是obj/Windows.o,则无论Windows.cpp位于何处,这都适用。 – Bulletmagnet
呀,后来我已经重复... – kim366