gpt4 book ai didi

go - `go run hello.go` 找不到 "hello.go"文件

转载 作者:数据小太阳 更新时间:2023-10-29 03:47:32 30 4
gpt4 key购买 nike

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

CreateFile hello.go:The system cannot find the file specified

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

最佳答案

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

当你执行

go run hello.go

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


不幸的是,从您的 shell session 的外观来看,它出现在那里您的设置有更多问题。而且您的 Go 方法存在问题。

首先,虽然看起来您正在关注 this guide (这是正确的事情做,实际上),你误读了它。

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

正如您从 go env 输出中看到的,Go 认为您有一个工作区位于 C:\Users\Sitaram\Go

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

现在你有两个选择:

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

    然后按照教程文档的其余部分:

    1. 确保 C:\GOCODE 下有“src”文件夹。
    2. 在“src”下创建您的项目文件夹目录。比方说,它将被命名为“你好”。
    3. 在“hello”下,创建“hello.go”文件。
    4. 现在 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获取更多信息的快速引用卡。

关于go - `go run hello.go` 找不到 "hello.go"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47787333/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com