这个,简化了,makefile工作得很好。
# folder for .o files
ODIR=./obj
$(ODIR)/cutest.o :
g++ -o $(ODIR)/cutest.o -c ../../../raven-set/cutest.cpp这个尝试使用vpath,失败了。
#source file search paths
vpath %.cpp ../../../raven-set
# folder for .o files
ODIR=./obj
$(ODIR)/cutest.o :
g++ -o $(ODIR)/cutest.o -c cutest.cpp像这样
g++ -o ./obj/cutest.o -c cutest.cpp
cc1plus.exe: fatal error: cutest.cpp: No such file or directory@MadScientist的建议:
# folder for .o files
ODIR=./obj
$(ODIR)/cutest.o : cutest.cpp
g++ -o $@ -c $<但这也失败了
mingw32-make: *** No rule to make target 'cutest.cpp', needed by 'obj/cutest.o'. Stop.发布于 2021-12-06 18:17:57
Make将不会查看编译命令的文本,并尝试查找对先决条件字符串的引用并替换它们。
Make只替换make变量。
因此,您应该在菜谱中使用自动变量:
$(ODIR)/cutest.o : cutest.cpp
g++ -o $@ -c $<ETA这是为我工作的:
$ cat Makefile
vpath %.cpp src
obj/cutest.o : cutest.cpp
g++ -o $@ -c $<
$ mkdir src
$ touch src/cutest.cpp
$ make
g++ -o obj/cutest.o -c src/cutest.cpphttps://stackoverflow.com/questions/70249738
复制相似问题