C Makefile:编译时没有链接问题
目前,我正在尝试编译子文件夹中的.c文件而不进行链接,并在Makefile中创建了一个简单的草稿。我要做的是将.o文件放入bin/directory,而无需像前面所述的那样进行链接。但是,无法成功实现任何输出 有一个示例生成文件:C Makefile:编译时没有链接问题,c,makefile,compilation,C,Makefile,Compilation,目前,我正在尝试编译子文件夹中的.c文件而不进行链接,并在Makefile中创建了一个简单的草稿。我要做的是将.o文件放入bin/directory,而无需像前面所述的那样进行链接。但是,无法成功实现任何输出 有一个示例生成文件: IDIR = test/inc ODIR = test/src CC = gcc CFLAGS = -std=c99 -I$(IDIR) OBJDIR = bin .PHONY: clean $(OBJDIR): mkdir $(OBJDI
IDIR = test/inc
ODIR = test/src
CC = gcc
CFLAGS = -std=c99 -I$(IDIR)
OBJDIR = bin
.PHONY: clean
$(OBJDIR):
mkdir $(OBJDIR)
$(OBJDIR)/%.o: $(ODIR)/*.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
@rm -rf $(OBJDIR)
IDIR=test/inc
ODIR=测试/src
CC=gcc
CFLAGS=-std=c99-I$(IDIR)
OBJDIR=bin
.假冒:干净
$(OBJDIR):
mkdir$(OBJDIR)
$(OBJDIR)/%.o:$(ODIR)/*.c
$(CC)$(CFLAGS)-c$<-o$@
清洁:
@rm-rf$(OBJDIR)
如果您能定义我遗漏了什么,那就太好了。生成文件需要实际请求创建所有对象文件。建议:
IDIR := test/inc
SDIR := test/src/
CC := gcc
CFLAGS := -Wall -Wextra -Wconversion -pedantic -std=c99 -I$(IDIR)
OBJDIR := bin/
SRCS := (wildcard:$(SDIR)*.c)
OBJS := ($(SRCS):.c=.o)
.PHONY: all clean
all: $(OBJDIR) $(OBJS)
$(OBJDIR):
mkdir $(OBJDIR)
$(OBJDIR)%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
@rm -rf $(OBJDIR)
make文件需要实际请求创建所有对象文件。建议:
IDIR := test/inc
SDIR := test/src/
CC := gcc
CFLAGS := -Wall -Wextra -Wconversion -pedantic -std=c99 -I$(IDIR)
OBJDIR := bin/
SRCS := (wildcard:$(SDIR)*.c)
OBJS := ($(SRCS):.c=.o)
.PHONY: all clean
all: $(OBJDIR) $(OBJS)
$(OBJDIR):
mkdir $(OBJDIR)
$(OBJDIR)%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
@rm -rf $(OBJDIR)
如何运行make,预期输出与实际输出的对比是什么?@dash-o我没有定义任何特定的目标来进行链接。相反,只是希望将create.o文件放入bin/directory,结果是在运行make命令时只创建bin/directory而不创建任何.o文件。如何运行make,预期输出与实际输出的对比是什么?@dash-o我没有定义任何特定的目标来进行链接。相反,我希望将create.o文件放入bin/directory,结果是在运行make命令时只创建bin/directory而不创建任何.o文件。