Как скопировать объектные, двоичные и эльфийские файлы в каталог в Makefile? - PullRequest
0 голосов
/ 27 марта 2019

Я использую gcc-arm и пытаюсь скопировать объектные файлы во время сборки в отдельный каталог.

OBJS = example.o

OBJDIR = /home/repos/build/

$(OBJDIR)/%.o: %.c 
$(CC) -c $(CFLAGS) $< -o $@ 
$(CC) -MM $(CFLAGS) $< > $*.d

%.o: %.s
    $(CC) -c $(CFLAGS) $< -o $@


ELF = main.elf
$(ELF): $(OBJS)
    $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS) 

BIN = main.bin
%.bin: %.elf
    $(OBJCOPY) -O binary $< $@

1 Ответ

0 голосов
/ 27 марта 2019

Если вы хотите построить цель в другом каталоге, вы должны указать make, что вы хотите это сделать.Это:

OBJS = example.o
  ...
$(ELF): $(OBJS)

говорит о том, что вы хотите создать файл example.o, который является просто файлом в том же каталоге.Если вы хотите создать файл в другом каталоге, вы должны запросить его:

OBJDIR = /home/repos/build/

OBJS = $(OBJDIR)example.o
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...