我对make和Makefile不太熟悉,但是我正在尝试为我的下一个项目创建一个Makefile,并遇到了PATH问题。 我一直收到错误消息:“找不到文件或目录”。
我创建了一个简单的目标,名为test
,可以使用mocha运行所有测试。
Mocha作为本地节点模块安装,因此其可执行文件可以在./node_modules/.bin/mocha
找到。根据这个make教程的描述,我正在更改我的PATH,以便可以将其称为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
时,它找不到。
我做错了什么?是否有关于变量作用域或Makefile中持久性的更大的问题我忽略了?
附注:如果重要的话,我正在使用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,会发生什么?它能正常工作吗? - Junior Dussouillez