Ошибка GCC Нет такого файла или каталога
Я работал над этим два дня и до сих пор не смог заставить этот make-файл работать.
Вот что у меня сейчас есть:
INCDIR = inc/pvt inc/pub
SRCDIR = src
OBJDIR = obj
LIBDIR = lib
CC=gcc
CFLAGS := $(foreach d, $(INCDIR), -I$d)
_SRC = teos_event.c teos_init.c teos_linkedlist.c teos_log.c teos_sem.c teos_task.c
_OBJ := $(subst $(SRCDIR),$(OBJDIR),$(_SRC:%.c=%.o))
OBJ := $(patsubst %,$(OBJDIR)/%,$(_OBJ))
build: $(OBJ)
$(CC) -o $@ $^ $(CFLAGS) -fmax-errors=1
$(OBJDIR)/%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS) -fmax-errors=1
$(OBJ): $(DEPS)
Это вывод, который я получаю при запуске make:
gcc -o build obj/teos_event.o obj/teos_init.o obj/teos_linkedlist.o obj/teos_log
.o obj/teos_sem.o obj/teos_task.o -Iinc/pvt -Iinc/pub -fmax-errors=1
gcc: error: obj/teos_event.o: No such file or directory
gcc: error: obj/teos_init.o: No such file or directory
gcc: error: obj/teos_linkedlist.o: No such file or directory
gcc: error: obj/teos_log.o: No such file or directory
gcc: error: obj/teos_sem.o: No such file or directory
gcc: error: obj/teos_task.o: No such file or directory
gcc: fatal error: no input files
compilation terminated.
makefile:40: recipe for target 'build' failed
make: *** [build] Error 1
Я пытаюсь собрать его без ошибок makefile. Любая помощь будет отличной.
1 ответ
Решение
Вы не заметили, что это не здание teos_event.o
?
Изменить это:
$(OBJDIR)/%.o: %.c
...
к этому:
$(OBJDIR)/%.o: $(SRCDIR)/%.c
...