douyi4991
2014-02-06 11:35
浏览 145

Ubuntu 13.10,Golang构建并运行,终端显示错误bash:./filename:权限被拒绝

I am trying to run Go's executable file after using command go build instead of typing go run filename.go.

I typed go build in the directory where the Golang source file resides. After the executable file had been created, I typed ./filename to run it. Then the terminal displayed a line :

bash : ./filename : Permission denied 

I had tried to change the permission of the filename by typing :

chmod u+x filename 

But this action doesn't give any effects. The permission denied error still occurs whenever I type ./filename.

Is there another way to build a Golang applications from source code, and then run it from executable file?

All things done well if I do this task in Windows command prompt, after typing go build, the filename.exe is created and there is no any problem when I run it by typing ./filename.exe.

图片转代码服务由CSDN问答提供 功能建议

我尝试使用命令 go build 而不是键入<后,运行Go的可执行文件 code>开始运行filename.go

我在Golang源文件所在的目录中键入了 go build 。 创建可执行文件后,我键入 ./ filename 来运行它。 然后终端显示一行:

  bash:./filename:权限被拒绝
   
 
 

通过键入以下命令更改文件名的权限:

  chmod u + x文件名
   
 
 

但是此操作不会 没有任何效果。 每当输入 ./ filename

,仍然存在拒绝权限错误。还有另一种方法可以从源代码构建Golang应用程序,然后从可执行文件运行它 文件?

如果我在Windows命令提示符下执行此任务,那么在输入 go build 后, filename.exe 创建,并且通过键入 ./ filename.exe 运行它没有任何问题。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • ds42774 2014-02-06 13:50
    已采纳

    NTFS and FAT have different permission models than Unix. This especially means that there is no executable flag on such a file system. Calling chmod a+x FILE is a no-op. Linux emulates classical Unix permissions on NTFS file systems by setting a mask for each file that contains the would-be permissions.

    To fix these problemss, either move executables to a different file system or change the mount flags to use a permission mask that enables the executable-flag (for all files).

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题