在构建和VScode中获得不正常的行为



在CentOS 7上使用Go版本go1.17.1 linux/amd64GOPATHGOROOT在我的.bashrc中按顺序设置:

export GOPATH="${HOME}/.go"
export GOROOT="/usr/local/go"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

Got my project in/home/wsb/_projects/local/parlance:

[wsb@localhost local]$ pwd
/home/wsb/_projects/local
[wsb@localhost local]$ tree
.
└── parlance/
└── main.go
└── utils.go

从终端,使用go get将src存储在/home/wsb/.go/pkg/mod/cache...文件夹

[wsb@localhost parlance]$ go get -v -u github.com/gorilla/mux
go: downloading github.com/gorilla/mux v1.8.0
github.com/gorilla/mux

[wsb@localhost parlance]$ go build main.go 
main.go:3:8: no required module provides package github.com/gin-gonic/gin: go.mod file not found in current directory or any parent directory; see 'go help modules'
[wsb@localhost parlance]$ 

[root@localhost /]# find -iname gin
./home/wsb/.go/pkg/mod/cache/download/github.com/gin-gonic/gin

为什么会在构建时抛出错误?

使用go mod是管理任何特定项目的包的关键。

go mod用于安装和跟踪GOPATH包之外的外部包。

从现有项目根目录parlance中初始化go mod,使用:

[wsb@localhost parlance]$ go mod parlance

它在项目根目录下创建两个文件:go.modgo.sum

现在我们可以go get任何模块,我们将使用专门为我们的项目。

go get github.com/gin-gonic/gin
go get github.com/gofiber/fiber/v2

这将在go.mod中创建外部包需求细节,并在go.sum文件中创建各自的校验和。

最后,我们可以像

那样构建/运行我们的包
go build main.go    
go run main.go

相关内容

  • 没有找到相关文章

最新更新