Я немного начинаю использовать make-файлы, и я пытаюсь написать make-файл для gcc, который принимает входы из двух разных каталогов (в моем случае они называются ядром и драйверами) и выводят объектные файлы в другой каталог (называемый tmp) с использованием подстановочных знаков.Каталог выходных файлов Makefile
Я написал этот код, чтобы получить имена входных файлов и выходных файлов
C_SOURCES = $(wildcard $(KERNEL_DIR)/*.c $(DRIVERS_DIR)/*.c)
#Creating a list for object files names
C_OBJ = $(C_SOURCES:.c=.o)
и я использую следующее правило
%.o: %.c $(CC) $(CFLAGS) -c $< -o [email protected]
, но я не могу получить для вывода объекта файлы в нужном каталоге.файлы
и как следует ли изменить правило? Я использую следующий '% .o:% .c \t $ (CC) $ (CFLAGS) -c $ <-o $ @' –
@PatrickJane, это сложнее. Поскольку вам нужен только один выходной каталог, это будет сложно. Я бы порекомендовал, чтобы вы этого не делали, а вместо этого отразили структуру входных каталогов в 'tmp' - тогда у вас будет отображение 1: 1 каждого файла' .o' в файл '.c' и сделайте свою жизнь Полегче. –