c - 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)
解决方案
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)
推荐阅读
- amadeus - 企业用户如何将经过测试的自助服务 REST API 移动到生产环境?
- ios - 可以使用 IndexPath(item: 0, section: 0) 为 TableView 设置 IndexPath
- android - Simpletarget 是否已弃用 glide?
- react-native-navigation - 在 react-native-navigation 中,如何在不导航的情况下更新选定的标签栏图标?
- c++ - std::map 擦除 - 将迭代器传递给错误的地图
- c++ - 为什么用 c++ 编译文件系统代码会返回这个错误?
- node.js - 打字稿 - 导入模块 - 找不到模块
- r - 使用 HTTR 的 POST 请求
- python-3.x - 如何通过登录要求电话验证?
- java - modbus4j 的依赖