2 回答

TA贡献1830条经验 获得超3个赞
这是由于 GNU make 中的错误(实际上是 gnulib 中的错误)。这意味着您在您的某个目录中有一个名为 的目录(在包含可执行文件的实际目录之前)。go
PATH
go
因此,如果您有一个目录 /usr/bin/go/.
并且在/usr/bin
您的 上PATH
,您将看到此问题。
您应该检查PATH
并确保删除包含此类子目录的所有目录。如果你不能从你的目录中删除那个目录PATH
(需要包含你的子目录的目录是不寻常的,PATH
但我想这是可能的)并且你不能将目录重命名go
为其他东西,你必须确保 GNU make 调用 shell , 通过添加特殊字符。就;
足够了:
run: go run . ;

TA贡献1796条经验 获得超7个赞
您遇到的问题可能是由于您的 shell 和Makefile. 例如,如果你有一个 shell 别名,go这个Makefile别名对Makefile. 很难猜测差异可能在哪里。
您可能想尝试通过在您的以下内容中尝试调试问题Makefile:
echo $(PATH)
command -v go
并在您的 shell 中运行相同的命令并比较结果。
请注意,默认的 shellMakefile是/bin/sh而你可能有bashor zsh。
这里有一些方便的默认值来配置你的Makefile构建:
LANG=en_US.UTF-8
SHELL=/bin/bash
.SHELLFLAGS=--norc --noprofile -e -u -o pipefail -c
- 2 回答
- 0 关注
- 545 浏览
添加回答
举报