gcc -o abc/def.o def.cdef.o在目录中生成文件abc;仅当存在目录时abc。
当生成的目标文件的封闭目录不存在时,有没有办法让 gcc 创建一个目录?如果没有,那么预先自动创建目录的最简单方法是什么,尤其是对于 Makefile?
从这篇文章来看,似乎没有办法从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)