来自外部源的 Makefile 调用
Makefile call from outside source
我的项目结构为:
项目:
- 源码
- 包括
- 对象
- bin
- 生成文件
makefile如下:
inc = -I include
run : $(addprefix obj/,doubly-circular-linked-list.o node.o main.o)
$(CXX) $^ -o bin/$@
obj/%.o : $(addprefix src/,$(patsubst %.o,%.c,doubly-circular-linked-list.o node.o main.o))
$(CXX) $(inc) -c $< -o obj/$@
.PHONY : clean
clean :
rm -f obj/*.o bin/run
制作时出现以下错误:
*** No rule to make target 'obj/doubly-circular-linked-list.o', needed by 'run'. Stop.
请告诉我哪里错了。
该错误意味着您有一行以制表符开头的行无法找到它所属的目标。
在这种情况下,我认为您的问题是
上的错字
%.o = $(addprefix src/,$(patsubst %.o,%.c,doubly-circular-linked-list.o node.o main.o))
行。具体来说,你有 =
而不是 :
。
话虽如此,该行将分配 every .c
文件作为 every [=14= 的先决条件] 文件(也就是说,这不是一对一的 .c
到 .o
文件映射)。
我的项目结构为:
项目:
- 源码
- 包括
- 对象
- bin
- 生成文件
makefile如下:
inc = -I include
run : $(addprefix obj/,doubly-circular-linked-list.o node.o main.o)
$(CXX) $^ -o bin/$@
obj/%.o : $(addprefix src/,$(patsubst %.o,%.c,doubly-circular-linked-list.o node.o main.o))
$(CXX) $(inc) -c $< -o obj/$@
.PHONY : clean
clean :
rm -f obj/*.o bin/run
制作时出现以下错误:
*** No rule to make target 'obj/doubly-circular-linked-list.o', needed by 'run'. Stop.
请告诉我哪里错了。
该错误意味着您有一行以制表符开头的行无法找到它所属的目标。
在这种情况下,我认为您的问题是
上的错字 %.o = $(addprefix src/,$(patsubst %.o,%.c,doubly-circular-linked-list.o node.o main.o))
行。具体来说,你有 =
而不是 :
。
话虽如此,该行将分配 every .c
文件作为 every [=14= 的先决条件] 文件(也就是说,这不是一对一的 .c
到 .o
文件映射)。