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

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

Barbara Streisand
发布: 2024-12-20 12:18:10
原创
412 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板