`go run hello.go`找不到“hello.go”文件

时间:2017-12-13 07:06:13

标签: go

我尝试在命令提示符下运行程序#Go lang-但是当我输入“go run hello.go”命令时,我就开始了

  

CreateFile hello.go:系统找不到指定的文件

请帮助编译并运行上面标记的程序,提前致谢

3 个答案:

答案 0 :(得分:2)

从运行dir命令的输出中可以看出 在shell会话的早期,确实没有名为“hello.go”的文件 在C:\GOCODE\testproject目录中。

执行

go run hello.go

命令,go工具尝试在当前查找名为“hello.go”的文件 目录(因为该文件的名称是相对的,所以它正在存在 在当前工作目录中搜索)。没有这样的文件, 这就是go run告诉你的。

不幸的是,从你的shell会话的展望来看,它出现了 你的设置有更多问题。 你的Go方法存在问题。

首先,看起来你正在追随 this guide(这是正确的 实际上,你误解了它。

它试图告诉你的是你应该创建“src” 目录(然后是包含测试项目的“hello”目录) 在所谓的工作区中,和Go已知的工作空间列表 存储在GOPATH环境变量中。

go env输出中可以看出,Go认为你有一个 工作区位于C:\Users\Sitaram\Go

现在值得重申 - 与许多(如果不是大多数)“主流”相反 语言,-Go不是“基于项目的”;相反,它需要你所有的代码 在这些工作空间中组织起来,它想知道这些工作地点 工作区是。 默认情况下 - 如果您未明确设置GOPATH环境 变量,-it假定您的单个工作空间位于目录中 名为“go”的文件放在你的“主文件夹”中。 这就是您在go env输出中看到的内容。

现在您有两个选择:

  • 设置GOPATH env。您的用户变为C:\GOCODE的变量 然后启动另一个shell - 以便它“看到”该变量并允许 go工具也可以查看和使用)。 运行go env以验证GOPATH包含C:\GOCODE

    然后按照教程文档的其余部分进行操作:

    1. 确保C:\GOCODE
    2. 下直接有“src”文件夹
    3. 在“src”下创建项目文件夹目录。 比方说,它将被命名为“你好”。
    4. 在“hello”下,创建“hello.go”文件。
    5. 现在cd C:\GOCODE\src\hello然后go build - 您将拥有 hello.exe在那里创建。
  • 请勿与GOPATH混淆,只需重复上述步骤2-4即可 在默认工作区 - C:\Users\Sitaram\go

我会选择第二种变体,因为这种莫名的感情 某些Windows用户使用随机个人污染C:\ 数据真的是反模式;把你的个人物品放在家里 夹! Windows已经走了很长的路要走;几乎所有 Windows软件终于出现了 - 理解这种范式。为什么要偏离?

其次,请取消 go run。 我不确定Go开发者真的后悔实现它, 但人们确实误解了这个工具的用途。 这是一次性扔掉的“脚本”。 使用go install进行真正的开发,有时使用go build

在大多数情况下,您使用的正常开发例程go install 独占 - 因为它缓存了所有包的编译结果 你的项目取决于。 go build不会这样做,go run会这样做 甚至不保留项目本身编译的结果。 有关详细信息,请阅读this快速参考卡。

答案 1 :(得分:0)

获取gpackage后,请检查bin目录中是否存在yourproject.exe,以将github包与项目一起编译。 如果没有,则必须执行cd src / yourproject,然后输入go install并按Enter。

答案 2 :(得分:0)

尝试执行以下命令检查是否更正:

go env -w GOOS=windows