首页 >后端开发 >Golang >为什么我在构建 Go 项目时出现'package XXX is not in GOROOT”错误?

为什么我在构建 Go 项目时出现'package XXX is not in GOROOT”错误?

Barbara Streisand
Barbara Streisand原创
2024-12-20 12:18:10410浏览

Why Am I Getting the

构建 Go 项目时“package XXX is not in GOROOT”

上下文

尝试构建 Go 项目时出现问题,并且出现以下错误:“包项目/游戏不在 GOROOT 中(C:Gosrcprojectgame)"。

根本原因

此错误通常发生在以下情况:

  • GOROOT、GOPATH 和 GOBIN 环境变量未正确设置。
  • Go 项目结构不正确。
  • go.mod 文件项目根目录中缺少或不存在。

解决方案

1。配置环境变量

如果升级到较新的Go版本(1.13),不再推荐使用GOROOT、GOBIN、GOPATH等环境变量。

2.正确的项目结构

确保您的项目在项目根目录下有一个 go.mod 文件以及以下目录结构:

|- project
    |- game
        |- entity
        |- game_stuff.go
    |- server

3.使用 go mod

不要依赖环境变量,而是使用 Go Modules(go mod)来管理模块依赖关系。

cd project
go mod init remote-repo.com/username/repository

4.从模块根目录运行命令

命令应从项目根目录执行。例如:

go run server

5。指定完整模块路径

使用 go 命令时,尤其是从模块根外部使用时,请指定完整的包路径,其中包括供应商 URI。例如:

go test github.com/username/repository/project/game/entity

6。如果需要,设置 GOPATH(可选)

对于较旧的 Go 版本,您可以选择将 GOPATH 设置为项目所在的工作空间路径。确保 GOPATH 指向正​​确的路径。

GOPATH=C:\Users\username\go

示例

在提供的目录结构中构建服务器包:

cd project/server
go build project/server

此命令应该成功构建服务器包,并且不会出现“package XXX is not in GOROOT”错误。

以上是为什么我在构建 Go 项目时出现'package XXX is not in GOROOT”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn