Makefile:编译时没有链接问题

时间:2019-10-13 12:58:30

标签: c makefile compilation

当前,我正在尝试在不链接的子文件夹中编译.c文件,并在Makefile中创建了一个简单的草稿。我想要做的是将.o文件放入bin /目录,而没有像我之前描述的那样进行链接。但是无法成功达到任何输出。

有示例Makefile:

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)

如果您定义我错过了什么,那将很棒。

1 个答案:

答案 0 :(得分:2)

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 -f (your make file name) all