go - Makefile执行: permission denied

标签 go makefile fedora

我在使用 golang 和 Makefile(在 Fedora 33 上)时遇到了一个很奇怪的问题。 我的 Makefile 包含:

run:
  go run main.go

它应该只向控制台打印“Hello”。当我运行 make run 时出现此错误:

go run main.go
make: go: Permission denied
make: *** [Makefile:5: run] Error 127

但是,如果我将 Makefile 更改为

  run:
    /usr/bin/go run main.go

它工作得很好!

信息

输出:

$ which go
/usr/bin/go

$ go version
go version go1.15.5 linux/amd64

$ uname -a 
Linux localhost.localdomain 5.9.10-200.fc33.x86_64 #1 SMP Mon Nov 23 18:12:50 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

有人可以帮我解决这个问题吗?如果您需要更多信息,请告诉我!

谢谢!

编辑

控制台

$ echo ${PATH}
/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/home/olena/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin

make 的输出

echo /usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/home/olena/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin
/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/home/olena/bin:/usr/local/sbin:/usr/sbin:/var/lib/snapd/snap/bin
go run main.go
make: go: Permission denied
make: *** [Makefile:6: run] Error 127

/usr/bin

$ ll | grep go
lrwxrwxrwx.  1 root root 20 Nov 14 09:32 go -> /etc/alternatives/go

/etc/alternatives

$ ll | grep go
lrwxrwxrwx. 1 root root 22 Nov 29 15:16 go -> /usr/lib/golang/bin/go

最佳答案

我遇到了和你一样的问题,终于弄清楚我的问题是什么。也许这对您有用,尤其是当您将 zsh 与 omz 结合使用时。

在我的例子中,$PATH 中定义的位置之一包含一个名为 go 的文件夹。该位置在 go 二进制文件所在位置之前。一旦我将该位置放在二进制文件位置之后,一切正常。

我相信这可能与 omz 以及它的 shell 函数如何允许您进入文件夹有关。

关于go - Makefile执行: permission denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65092584/

相关文章:

makefile - 是否可以在 Makefile 的同一个目标中有多个先决条件模式?

C++ cmake/制作 : linker ld does not find library (missing path? )

go - 为什么 "close"不是保留关键字?

go - 使用 golang AddDate 计算日期的正确方法是什么

go - 如何引用go-flag IsSet,需要功能代码示例

c++ - 如何添加现有的lib需要构建到我自己的项目中

linux - 从 linux 中删除存储库

c - 如何使用有故障的内核模块 - FC19 使系统崩溃?

centos - libtcl8.4.so 和 libtk8.4.so 丢失

input - golang接受带空格的输入