• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Go语言分包编程

武飞扬头像
携手相将
帮助1

刚刚接触了Go,在网上学习Go的教程时遇到了问题:

        文中描述配置GOPATH环境变量,并在该文件下创建三个子目录:

                1.src存放源码

                2.pkg编译后生成的文件

                3.bin编译后生成的可执行文件

        按照步骤完成了上述配置和目录的创建,并在src目录下创建自己的应用包目录,在应用包目录下写入自己需要的go方法,之后在应用包目录下使用“ go install ”命令或任意目录下使用“ go install 包名 ”进行安装,此时出现问题。

问题描述

        使用“go install”命令的执行结果如下:

go: go.mod file not found in current directory or any parent directory; see 'go help modules'

        使用“go install 包名”方式安装的执行结果如下:

  1.  
    go: 'go install' requires a version when current directory is not in a module
  2.  
    Try 'go install mymath@latest' to install the latest version

即Go无法正确找到GOPATH下的应用包

解决方案

        问题出现后有尝试使用“go build mymath(包名)”未果,执行结果如下:

package mymath is not in GOROOT (/usr/local/go/src/mymath)

        基于此报错,找到了问题的原因和解决方案

        1.问题原因:执行“go env”命令可以发现这样一条信息

GO111MODULE=""

        问题关键就在于此,在此项值可为“on、off、auto(空)”,当此项为“on”或空时,会开启模块支持,在此场景下将会忽略 GOPATH配置

        2.解决方案:执行“ go env -w GO111MODULE="off" ”命令

修改完配置后再次尝试“go install”,无输出信息,进入“$GOPATH/pkg/linux_amd64/”目录下发现产生了对应的 .a文件,至此问题解决。

参考文献

GO引入自己的包运行时出现package 包路径 is not in GOROOT 问题

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhjbckf
系列文章
更多 icon
同类精品
更多 icon
继续加载