首页 >后端开发 >Golang >为什么我的 Go 编译器找不到我的外部包?

为什么我的 Go 编译器找不到我的外部包?

Barbara Streisand
Barbara Streisand原创
2024-12-05 19:38:10192浏览

Why Can't My Go Compiler Find My External Packages?

使用非 GOROOT Go 包

问题:遇到错误“package package1 is not in GOROOT (/usr/local/go/ src/package1)" 尝试使用外部包时Go.

说明:当Go编译器在标准库GOROOT目录下找不到指定的包时,就会出现此错误。这表明该软件包未安装或位于标准库之外。

解决方案:

  1. 配置环境变量:

    • 确保 GO111MODULE 环境变量设置为“on”以启用模块支持。
    • 将 GOPATH 环境变量设置为 GOROOT 之外的目录。
    • 将 GOPATH/bin 和 GOROOT/bin 添加到 PATH 环境变量。

    例如,您可以将这些行添加到您的 .bashrc文件:

    export GO111MODULE=on
    export GOPATH=/mnt/sda1/programming/gopath
    export PATH=$PATH:$GOPATH/bin
    
    export GOROOT=/usr/local/go
    export PATH=$PATH:$GOROOT/bin
  2. 加载环境变量:

    • 通过运行 source 重新加载环境变量~/.bashrc.
  3. 初始化主包:

    • 为主项目创建一个新目录并初始化带有 go mod init 的模块main.
  4. 创建外部包:

    • 为外部包创建一个单独的目录。
    • 在外部包目录中,使用第一个包中的 package1 语句创建任何必需的文件
  5. 导入外部包:

    • 在主 Go 文件(main.go)中,导入外部包包使用相对于主包目录的路径。例如:
    import "main/package1"

按照以下步骤,可以保证你的Go编译器能够找到并使用外部包,解决“packagepackage1 is not in GOROOT”的问题“错误。

以上是为什么我的 Go 编译器找不到我的外部包?的详细内容。更多信息请关注PHP中文网其他相关文章!

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