当前位置 博文首页 > 解决go build不去vendor下查找包的问题

    解决go build不去vendor下查找包的问题

    作者:zgcbj 时间:2021-02-04 15:17

    go build 报错:

    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下找呢?

    确认了下,是目录结构的问题,可以查找vendor的目录结构是

    test|
    |src|
    | |test|
    | | |main.go
    | | |vendor

    也就是说,需要在src下面再有一层目录

    补充: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

    解决问题思路

    感觉应该是GOPATH环境变量没有设置对。

    问题分析

    go build 提示在src stack 目录下找不到相应到库文件。

    stacker.go的package内容大致如下

    package main
    import (
     "fmt"
     "stacker/stack"
     "strings"
    )

    所以尝试修改$GOPATH为src同级目录,再使用go build stacker.go 编译就可以正常找到相应的stack package.

    问题总结

    go 编译器默认会在当前目录中查找src目录下package。如果没有src目录,编译器就找不到相应的package。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持站长博客。如有错误或未考虑完全的地方,望不吝赐教。

    js
    下一篇:没有了