C Makefile:编译时没有链接问题

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

目前,我正在尝试编译子文件夹中的.c文件而不进行链接,并在Makefile中创建了一个简单的草稿。我要做的是将.o文件放入bin/directory,而无需像前面所述的那样进行链接。但是,无法成功实现任何输出

有一个示例生成文件:

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文件。