Я относительно новичок в написании файлов и могу использовать некоторые указатели. То, что я пытаюсь достичь, возможно, довольно просто, но после поиска в Интернете я не понимаю, как это сделать.Makefile, модификаторы макросов
Я хотел бы скомпилировать набор объектных файлов из каталога src в каталог сборки, и моя наивная идея заключалась в том, чтобы определить набор исходных файлов в качестве макроса, использовать модификаторы макросов для создания макроса для объектных файлов (так что они должным образом по сравнению с исходными файлами при перекомпиляции Моя текущая схема обозревают создания объектных файлов макросов выглядит как:.
SRCDIR = /some/dir/
BUILDDIR = /some/dir/
CSRC = \
$(SRCDIR)f1.c \
$(SRCDIR)f2.c \
OSRC = $(CSRC,.c=.o,F,<$(BUILDDIR))
all:
@echo $(OSRC)
, где все правила просто поставить и проверить, если макрос объектные файлы установлены правильно К сожалению, это не так, вместо этого оно пустое. Замена
OSRC = $(CSRC,.c=.o,F,<$(BUILDDIR))
по
OSRC = $(CSRC:.c=.o)
действительно дает мне макрос объектных файлов, но не с соответствующими каталогами. Таким образом, понимание того, как изменить мой файл, чтобы получить то, что я хочу, будет оценено по достоинству. (Я использую GNU Make 3.82)
Да Ваш, бросить курить прямо, после второго взгляда на домашнюю страницу, где я получил синтаксис я понимаю, что это не GNU сделать синтаксис, но Opus сделать, жаль мое замешательство и благодарность за правильный синтаксис с помощью GNU. – cpaitor