我有包含 src、obj 和 inc 目录的项目文件夹。
我用 obj - OBJS 声明 var
SDIR = src
ODIR = obj
# I change /src/*.c to /obj/*.o
_OBJS = $(patsubst %.c, %.o, $(wildcard $(SDIR)/*.c))
# I need to change /src/*.o to /obj/*.o
OBJS = $(??? $ODIR ??? $_OBJS ???)
现在在 _OBJS - ./src/*.o
中,如何将 OBJS 中的 /src/
更改为 /obj/
?
谢谢。
最佳答案
这个呢(如果我理解正确的话):
SDIR = src
ODIR = obj
# I change /src/*.c to /obj/*.o
_OBJS = $(patsubst %.c, %.o, $(wildcard $(SDIR)/*.c))
# I need to change /src/*.o to /obj/*.o
_OBJS := $(subst $(SDIR), $(ODIR), $(_OBJS))
debug:
@echo $(_OBJS)
输出/测试:
$ mkdir ./src/
$ touch ./src/a.c
$ touch ./src/b.c
$ touch ./src/c.c
$ ls ./src/
a.c b.c c.c
$ make debug
obj/a.o obj/b.o obj/c.o
关于Makefile:如何更改var的前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34240501/