首页 > 解决方案 > gcc:“没有这样的文件或目录”

问题描述

我启动“make”时收到错误消息

我不知道问题出在哪里。

我猜在makefile中。你能帮帮我吗!谢谢 :)

制作:循环 src/amqp_consommateur.c <- obj/amqp_consommateur.o 依赖项已删除。制作:循环 src/amqp_producteur.c <- obj/amqp_consommateur.o 依赖项已删除。制作:循环 src/amqp_producteur.c <- obj/amqp_producteur.o 依赖项已删除。gcc obj/amqp_consommateur.o obj/amqp_producteur.o -o amqp_consommateur amqp_producteur -L。-lamqp gcc:错误:obj/amqp_consommateur.o:没有这样的文件或目录 gcc:错误:obj/amqp_producteur.o:没有这样的文件或目录 gcc:错误:amqp_producteur:没有这样的文件或目录 make:*** [src /amqp_producteur.c] 错误 1

CC := gcc
CFLAGS := -Wall -Werror -g
SRCDIR := src
OBJDIR := obj
LDFLAGS :=
LIBS := -L. -lamqp
PROG := amqp_consommateur amqp_producteur
SRCS_RAW := amqp_consommateur.c amqp_producteur.c
#addprefix : src/amqp_consommateur obj/amqp_consommateur.o
SRCS := $(addprefix $(SRCDIR)/,$(SRCS_RAW))
OBJS := $(addprefix $(OBJDIR)/,$(SRCS_RAW:.c=.o))

.PHONY: all
all: $(OBJS)
    @echo "$(MAKE) : Tout est généré"

$(SRCS) : $(OBJS) 
    $(CC) $(OBJS) -o $(PROG) $(LIBS)
#rule to create object directory if it doesnt exist
$(OBJDIR):
    mkdir $(OBJDIR)
#define implicit rule to build objects in their own directory
#(note -- order only dependency on object directory)
$(OBJS): $(OBJDIR)/%.o: $(SRCDIR)/%.c | $(OBJDIR)
    $(CC) $(CFLAGS) -c $< 
.PHONY: clean
clean:
    $(RM) *~  $(EXEC)
    $(RM) -r $(OBJDIR)

在此处输入图像描述

标签: cgccmakefileexecutable

解决方案


CC := gcc
CFLAGS := -Wall -Werror -g
LDFLAGS :=
LIBS := -L. -lamqp
SRCS := amqp_consommateur.c amqp_producteur.c

OBJS := $(SRCS:c=o)
PROGS := $(SRCS:.c=)

.PHONY: all
all: $(PROGS)
    @echo "$(MAKE) : Tout est généré"

$(PROGS) : % : %.o Makefile 
    $(CC) $< -o $@ 

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

clean:
    rm -f $(PROGS) $(OBJS)

推荐阅读