有没有办法让gcc在生成的目标文件的封闭目录不存在时创建一个目录?如果不是,自动提前创建目录最简单的方法是什么,特别是对于Makefile?
解决方案From 这篇文章,似乎没有办法从 gcc 创建一个目录。
对于makefile,我可以使用这段代码片段。
OBJDIR = obj MODULES:= src src2 ... OBJDIRS:= $(patsubst%,$(OBJDIR)/%,$(MODULES)) build:$(OBJDIRS) echo $ ^ $ b $(OBJDIRS): mkdir -p $ @make build 会创建目录,并回显结果。
我们也可以在不调用 make build 的情况下自动创建目标文件。
PROG:= hellomake LD:= gcc ... $(PROG ):$(OBJDIRS)obj / src / hellofunc.o obj / src / hellomake.o $(LD)$(filter%.o,$ ^)-o $(PROG)
gcc -o abc/def.o def.c generates def.o file in a directory abc; only when there exists a directory abc.
Is there a way to make gcc to create a directory when the enclosing directory of the generated object file does not exist? If not, what could be the easiest way to make the directory in advance automatically, especially for Makefile?
解决方案From this post, it seems like that there is no way to create a directory from gcc.
For makefile, I can use this code snippet.
OBJDIR = obj MODULES := src src2 ... OBJDIRS := $(patsubst %, $(OBJDIR)/%, $(MODULES)) build: $(OBJDIRS) echo $^ $(OBJDIRS): mkdir -p $@make build will create directories, and echo the results.
We also can make the object files are created automatically without invoking the make build.
PROG := hellomake LD := gcc ... $(PROG): $(OBJDIRS) obj/src/hellofunc.o obj/src/hellomake.o $(LD) $(filter %.o, $^) -o $(PROG)
更多推荐
在gcc中生成目标文件时创建目录
发布评论