gcc生成目标文件时创建目录

pro*_*eek 5 gcc makefile

gcc -o abc/def.o def.cdef.o在目录中生成文件abc;仅当存在目录时abc

当生成的目标文件的封闭目录不存在时,有没有办法让 gcc 创建一个目录?如果没有,那么预先自动创建目录的最简单方法是什么,尤其是对于 Makefile?

pro*_*eek 5

这篇文章来看,似乎没有办法从gcc.

对于 makefile,我可以使用此代码片段。

OBJDIR = obj
MODULES := src src2
...

OBJDIRS := $(patsubst %, $(OBJDIR)/%, $(MODULES))

build: $(OBJDIRS)
    echo $^

$(OBJDIRS):
    mkdir -p $@ 
Run Code Online (Sandbox Code Playgroud)

make build将创建目录并回显结果。

我们还可以使目标文件自动创建,而无需调用make build.

PROG := hellomake
LD   := gcc
...
$(PROG): $(OBJDIRS) obj/src/hellofunc.o obj/src/hellomake.o
    $(LD) $(filter %.o, $^) -o $(PROG)
Run Code Online (Sandbox Code Playgroud)