我遇到了 Go 1.11.4 的问题,忽略了vendor我所在项目的目录。尝试运行各种命令时,我收到以下错误,即使引用的路径清楚地存在于 vendor 目录中。错误消息本身似乎表明该vendor目录甚至没有被查看,至少对于这个应该找不到的项目来说是这样。到底发生了什么,我该如何解决这个问题?下面是来自终端的直接复制/粘贴,在一些pbpaste | sed "s#…#R#g;s#…#M#g;s#…#D#g;s#…#B#g;s#…#example.org#g;s#^#printf \t#g" | pbcopy脚本之后匿名存储库。ubuntu:R {607} go versiongo version go1.11.4 linux/amd64ubuntu:R {608} go build | & head -4server.go:10:2: cannot find package "example.org/M/B" in any of: /usr/local/go/src/example.org/M/B (from $GOROOT) /home/ubuntu/go/src/example.org/M/B (from $GOPATH)R.go:8:2: cannot find package "example.org/M/D" in any of:ubuntu:R {609} ll vendor/example.org/M/B/total 284 -rw-r--r-- 1 ubuntu ubuntu 156 Jan 10 17:57 .drone.yml8 -rw-r--r-- 1 ubuntu ubuntu 6207 Jan 10 17:57 Gopkg.lock4 -rw-r--r-- 1 ubuntu ubuntu 798 Jan 10 17:57 Gopkg.toml4 -rw-r--r-- 1 ubuntu ubuntu 53 Jan 10 17:57 README.md8 -rw-r--r-- 1 ubuntu ubuntu 4783 Jan 10 17:57 B.goubuntu:R {610} go envGOARCH="amd64"GOBIN=""GOCACHE="/home/ubuntu/.cache/go-build"GOEXE=""GOFLAGS=""GOHOSTARCH="amd64"GOHOSTOS="linux"GOOS="linux"GOPATH="/home/ubuntu/go"GOPROXY=""GORACE=""GOROOT="/usr/local/go"GOTMPDIR=""GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"GCCGO="gccgo"CC="gcc"CXX="g++"CGO_ENABLED="1"GOMOD=""CGO_CFLAGS="-g -O2"CGO_CPPFLAGS=""CGO_CXXFLAGS="-g -O2"CGO_FFLAGS="-g -O2"CGO_LDFLAGS="-g -O2"PKG_CONFIG="pkg-config"GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build981837178=/tmp/go-build -gno-record-gcc-switches"ubuntu:R {611}
1 回答
森栏
TA贡献1810条经验 获得超5个赞
仔细研究,如果您正在构建的项目不在目录下vendor
,您正在处理的项目的目录似乎会被神奇地忽略,这是一个绝对零意义的要求,特别是对于排除故障的难度这个问题,以及整个概念是多么不直观。src
$GOPATH
src
一种选择是在其中一个目录中创建符号链接,$GOPATH
返回到签出项目的光盘上的实际空间,并cd
通过符号链接编译项目(例如,cd ~/go/src/R; go build
,或pushd ~/go/src/R; go build; popd
)。另一种选择是借助:
git config --global url."git@github.com:".insteadOf "https://example.org/" go get example.org/M/R
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消