我有一个包含两个文件夹的目录,src
and bin
makefile 位于根目录。即使没有更改,此 makefile 也会持续编译(不是最新的)。我在这个 makefile 中遗漏了什么吗?
all:
make a b
a: ./src/a.cpp
g++ -o ./bin/a ./src/a.cpp
b: ./src/b.cpp
g++ -o ./bin/b ./src/b.cpp
您的规则声称创建文件a
and b
,但他们没有:他们创造bin/a
and bin/b
.
So when make
检查你的规则,它总是发现a
and b
不存在并尝试通过执行相关命令来创建它们。
可能的修复:
.PHONY: all
all: bin/a bin/b
bin/a: src/a.cpp
g++ -o bin/a src/a.cpp
bin/b: src/b.cpp
g++ -o bin/b src/b.cpp
On .PHONY
: https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html#Phony-Targets https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html#Phony-Targets
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)