c - Makefile:没有链接问题的编译

标签 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)

如果您定义我遗漏了什么,那就太好了。

最佳答案

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)

运行上面的 makefile 使用:

make -f (your make file name) all

关于c - Makefile:没有链接问题的编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58363787/

相关文章:

c - 了解 GHS 链接器文件

c - EXC_BAD_ACCESS 使用 GCC 编译时,Clang 可以工作

ios - 为所有架构编译 PJSIP 2.5 库

如果没有出现 Seg Fault 错误,则无法使 Make 正常工作

linux - 我怎么知道编译内核代码时是否有错误?

eclipse - julia源码中jl_value_t的含义

c - C 中的指定初始化数组

c - 我怎样才能在这里将变量传递给函数?

c++ - 如何在 Eclipse C++ 项目中创建两个主电源

python - 让cProf只给出10个最耗时的任务或者按照时间倒序对它们进行排序