我无法弄清楚为什么make会给我这个。我运行“make clean; make”然后“make install”,我得到一个“make:没有什么可以做'安装'。”信息。这是我的安装目标:
$(phony install): $(OBJFILES)
@$(shell cp $(OBJFILES) ../../)
我将它从使用“.PHONY:install”更改为“$(假冒安装)”,因为我看到网上有人说这也是一种伪造目标的方式,我很难过。老实说,我对编写自己的Makefile非常陌生,但看起来很简单。我确定我错过了一些明显的东西,我会在一秒钟内感到愚蠢。 :P
好的,奇怪的是。似乎make正在执行安装目标,但仍然说“无所事事”,这很奇怪。此外,如果我做“make clean; make install”它安装得很好,并没有给我任何类似的消息。因此,只有当目标文件需要重建时,“安装”才会看到它需要运行。这没有意义。我应该可以运行“make; make install”了!
答案 0 :(得分:1)
您不需要在配方中使用$(shell ...)
,而是按原样编写命令。此外,我从未听说过$(phony ...)
,我猜它无效(尝试使用--warn-undefined-variables
选项运行。)
.PHONY: install
install: $(OBJFILES)
@cp $^ ../../