我是新来make和Makefiles,但我正在尝试为我的下一个项目创建一个,并且遇到PATH问题。我不断收到错误:“没有这样的文件或目录”在Makefile中设置PATH的问题
我创建了一个名为test
简单的目标,使用mocha运行了所有的考试。
Mocha作为本地节点模块安装,因此它的可执行文件位于./node_modules/.bin/mocha
。我正在改变我的路径,如this make tutorial中所述,所以我可以将其称为mocha
而不是键入完整路径,但似乎没有工作。
这是我到目前为止有:
export PATH := node_modules/.bin:$(PATH)
test:
which mocha
mocha
.PHONY: test
当我运行make test
我得到以下的输出:
which mocha
node_modules/.bin/mocha
mocha
make: mocha: No such file or directory
make: *** [test] Error 1
正如你可以从输出中看到,which mocha
正确打印路径mocha可执行文件,但是当我只是运行mocha
时,它找不到它。
我在做什么错?是否有关于我失踪的Makefiles中的变量作用域或持久性的更多信息?
P.S.如果它很重要,我使用Mac和XCode开发人员工具附带的make版本。这是我所得到的,当我运行make -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-apple-darwin11.3.0
这很奇怪。如果删除'export PATH:= node_modules/.bin:$( PATH)'并运行make,如下所示:$ PATH = node_modules/.bin:$ PATH make test工作正常吗? –
是的,如果我这样做,工作得很好。 –