Как скомпилировать различные c файлы с другим CFLAGS, использующим Make-файл?

Предположение, что значения в dict уникальны:

dict((v, k) for k, v in my_map.iteritems())
36
задан 20 August 2009 в 11:56
поделиться

2 ответа

Try using target-specific variables. A target-specific variable is declared like this:

TARGET: VAR := foo  # Any valid form of assignment may be used ( =, :=, +=, ?=)

Now when the target named TARGET is being made, the variable named VAR will have the value "foo".

Using target-specific variables, you could do this, for example:

OBJ=[all other .o files here, e.g. D.o, D.o, E.o .... Z.o]
SPECIAL_OBJS=A.o B.o

all: $(OBJ) $(SPECIAL_OBJS)

$(SPECIAL_OBJS): EXTRA_FLAGS := -std=c99   # Whatever extra flags you need

%.o: %.c
     @echo [Compiling]: $<
     $(CC) $(CFLAGS) $(EXTRA_FLAGS) -o $@ -c $<
48
ответ дан 27 November 2019 в 05:53
поделиться

Я не могу ответить на вопрос о необработанных make-файлах, но если вы хотите использовать automake, это тривиально:

foo_CFLAGS = [options passed to CC only when building foo]
2
ответ дан 27 November 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: