У меня есть несколько файлов C++, распределенных по нескольким папкам.
a_library/
file1.cpp
file2.cpp
category1/
file3.cpp
file4.cpp
Они гарантированно будут иметь уникальное имя. Я хочу скомпилировать все эти файлы С++ для разделения объектных файлов в каталоге obj/
.
У меня есть список всех исходных файлов с относительным путем и их соответствующими именами назначения.
a_library/file1.cpp
a_library/file2.cpp
a_library/category1/file3.cpp
a_library/category1/file4.cpp
obj/file1.obj
obj/file2.obj
obj/file3.obj
obj/file4.obj
Как сделать правило, которое будет преобразовывать файл С++ из первого списка в объектный файл из второго?
Эти попытки не работают:
obj/%.obj: %:cpp
# ...
%.obj: %.cpp
# ...
.cpp.obj:
# ...
Я бы не хотел писать такие правила:
obj/%.obj: a_library/%.cpp
# ...
obj/%.obj: a_library/category1/%.cpp
# ...