Gcc错误没有这样的文件或目录

时间:2017-03-09 14:27:20

标签: makefile gnu-make makefile-errors

我已经为此工作了两天,仍然无法让这个makefile工作。

这就是我目前所拥有的:

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 个答案:

答案 0 :(得分:1)

您是否注意到它没有构建teos_event.o

改变这个:

$(OBJDIR)/%.o: %.c
    ...

到此:

$(OBJDIR)/%.o: $(SRCDIR)/%.c
    ...