Golang导入本地包失败

Nexxus:

我正在尝试将本地包(令牌)导入到项目的目录中,但是当尝试如下图所示构建网关子目录时,总是收到一个错误,即无法在GOROOT目录中找到该包

目录结构如下所示:

~goProjects/src
    -Project
        -Gateway
            -main.go
        -token
            -token.go

在“网关”子目录中:

go build
package Project/token is not in GOROOT (/usr/local/go/src/Project/token)

这就是我尝试将本地包“令牌”导入到我的Gateway main.go文件中的方式:

package main

import (
    "Project/token"
)

这是我的环境设置:

GO111MODULE=""
GOARCH="amd64"GOBIN=""
GOCACHE="/home/nexxus/.cache/go-build"
GOENV="/home/nexxus/.config/go/env"GOEXE=""GOFLAGS=""
GOHOSTARCH="amd64"GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/nexxus/goProjects"
GOPRIVATE=""GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""

在阅读了几篇有关如何编写go代码的文章之后,我看过几次,这似乎使编译器应该检查GOPATH包以及GOROOT目录。似乎我的构建过程不是先查看我的GOPATH,而只是检查GOROOT,没有在那儿找到本地包,然后退出

在尝试构建网关目录之前,我已经成功编译了令牌包。有人对我做错事情有建议吗?

AJR:

我怀疑您正在使用Go 1.14,在这种情况下,除非您关闭Go模块,否则就不会使用GOPATH(至少以您期望的方式)。

$ export GO111MODULE =关闭

但是正如@Subham Sarkar明智建议的那样,您应该使用Go模块。

$ go mod init项目

但是,如果这不仅仅是测试,则不应使用名称“ Project”,而应使用不会冲突的名称,例如“ github.com/yourname/Project”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档