gcc -c *.c 一次编译多个源文件有参数能指定生成目标文件的目录吗?

yak 发布于 02/21 20:51
阅读 85
收藏 0
GCC

比如源文件 有

foo.c 

bar.c

gcc -c foo.c   -o debug\foo.o

gcc -c bar.c   -o  debug\bar.o

这样每一行单独指定目录可以

gcc -c *.c  

这样会在当前目录生成对应的目标文件  所有文件会混在一起

gcc -c *.c 有没有参数可以将生成的目标文件生成到指定的目录?

比如 gcc -c *.c -outdir debug\

 

加载中
0
快乐的一只小青蛙
快乐的一只小青蛙
SRC = $(wildcard *.c)
OBJ = $(patsubst %.c,debug/%.o,$(SRC))
DIR = debug

all:$(OBJ)

debug/%.o:%.c | dir
        gcc -c $^ -o $@

dir:
        @mkdir -p $(DIR)

clean:
        -rm -rf $(OBJ)

.PHONY:all,clean,dir

 

创建一个makefile,拷贝这段,然后执行make,可以达到你想要的效果

快乐的一只小青蛙
快乐的一只小青蛙
回复 @yak : 用 | 修饰,会在目录不存在的时候支持创建目录的语句,而不会只有创建
yak
yak
| dir 中的“|”表示什么?
返回顶部
顶部