go build 報(bào)錯(cuò):
main.go:5:2: cannot find package “gopkg.in/go-playground/validator.v9” in any of:
/usr/local/go/src/gopkg.in/go-playground/validator.v9 (from $GOROOT)
/root/work/testjdcloud/src/gopkg.in/go-playground/validator.v9 (from $GOPATH)
但是為什么沒有去vendor下找呢?
確認(rèn)了下,是目錄結(jié)構(gòu)的問題,可以查找vendor的目錄結(jié)構(gòu)是
test|
|src|
| |test|
| | |main.go
| | |vendor
也就是說,需要在src下面再有一層目錄
補(bǔ)充:go build cannot find package 問題
問題描述
使用go build 編譯*.go 程序是找不到package。
窗口信息如下:
$GOPATH>go build stacker.go
stacker.go:18:2: cannot find package “stack” in any of:
D:\Go\src\stack (from $GOROOT)
$GOPATH\src\stack (from $GOPATH)
$GOPATH>go version
go version go1.11.2 windows/amd64
解決問題思路
感覺應(yīng)該是GOPATH環(huán)境變量沒有設(shè)置對。
問題分析
go build 提示在src stack 目錄下找不到相應(yīng)到庫文件。
stacker.go的package內(nèi)容大致如下
package main
import (
"fmt"
"stacker/stack"
"strings"
)
所以嘗試修改$GOPATH為src同級目錄,再使用go build stacker.go 編譯就可以正常找到相應(yīng)的stack package.
問題總結(jié)
go 編譯器默認(rèn)會(huì)在當(dāng)前目錄中查找src目錄下package。如果沒有src目錄,編譯器就找不到相應(yīng)的package。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 解決GOPATH在GOLAND中的坑
- golang 如何刪除二進(jìn)制文件中的源碼路徑信息
- Golang 刪除文件并遞歸刪除空目錄的操作
- Golang 文件操作:刪除指定的文件方式
- go run main.go 一直提示找不到包的解決方案