我需要cd到一个特定的目录,然后简单地运行go run main.go
并启动我的应用程序。
stand-app: |
$(info Booting up the app for local testing)
cd $(PWD)/cmd/myapp
go run main.go
当我运行目标时,我得到以下结果:
go run main.go
stat main.go: no such file or directory
make: *** [stand-app] Error 1
但是位置是正确的,我可以简单地通过cd到那个目录并运行命令来完成这些步骤。我哪里出错了?
谢谢你
1条答案
按热度按时间6yt4nkrj1#
配方中的每一个逻辑行都在不同的shell中运行。当前工作目录是shell的一个属性;当shell消失时,对工作目录的任何更改也会消失。因此,您的
cd ...
是no-op:它将更改该shell中的工作目录,然后退出该shell,并使用原始工作目录启动下一个shell。将这两行合并为一个逻辑行;也许是这样的:
只是提醒:
PWD
对make来说并不特殊。如果调用make的shell设置了它,它就有值;如果调用make的shell没有设置它,它就没有值(或者如果在父shell中没有正确设置它,它就有错误的值)。你可能想使用make的CURDIR
变量来代替: