Я пытаюсь написать make-файл для выборочного включения определенного файла.
Мне удалось заставить его работать со следующим:
OBJS := $(filter-out ./build/./src/class_1.cpp.o, $(OBJS))
OBJS := $(filter-out ./build/./src/class_2.cpp.o, $(OBJS))
OBJS_1 :=./build/./src/class_1.cpp.o $(OBJS)
OBJS_2 := ./build/./src/class_2.cpp.o $(OBJS)
Но я хотел бы сделать этоболее общий и использовать подстановочный знак.
Насколько я понимаю, должно работать следующее:
OBJS := $(filter-out $(wildcard ./build/./src/*), $(OBJS))
Я также пытался
OBJS := $(filter-out $(wildcard \./build/\./src/*), $(OBJS))
, но не уверен, что проблема со специальными символами или простобазовое понимание.
однако затем он жалуется на слишком много основных функций (класс 1 и класс 2).
Есть ли что-то, чего мне не хватает в моем понимании подстановочных знаков и фильтров в make?
Если я распечатываю значение $ (OBJS) с двумя разными подходами, значения совпадают, поэтому я не уверен, почему одно решение может работать, а другое - не удается.
Однако по какой-то причине OBJS_1
, похоже, не получает фильтр, который был применен к $(OBJS)