我已经在我的Ubuntu桌面上安装了go,在我关闭电脑之前,它工作得很好。
现在,当我启动我的机器并继续我的项目工作时,我得到了这样的结果
$ go build
go tool: no such tool "compile"
go tool: no such tool "compile"
go tool: no such tool "compile"
go tool: no such tool "compile"
go tool: no such tool "compile"当我尝试构建一个项目时。
我在断电前做的唯一一件事可能会有一些影响,那就是用以下命令安装godoc
sudo apt-get install golang-doc我没有使用apt-get,而是通过下载go1.10.1.linux-amd64.tar.gz文件直接安装go
转到环境
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/me/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/me/go"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
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-build255010769=/tmp/go-build -gno-record-gcc-switches"$ go版本
go version go1.10.1 linux/amd64我仍然可以运行被破坏的go代码。
这里会出什么问题呢?我怎么才能修复它?
发布于 2018-07-05 10:34:31
compile程序应该位于您的go env GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"目录中。如果没有,请下载Go,删除/usr/local/go,然后重新安装Go。
发布于 2019-09-11 23:47:10
这可能看起来很奇怪,但是运行export GOROOT=为我解决了这个问题。
发布于 2022-02-23 22:15:57
与使用apt-get相比,下载.tar.gz可能会导致go env值冲突/覆盖。最好坚持一种安装方法。
我在Mac上也遇到过类似的问题。当我使用.dmg安装Go时(类似于您的.tar.gz案例),它为GOTOOLDIR设置了一个完全不同的值,与我使用brew install golang安装Go时(类似于您的apt-get案例)完全不同。
分析:
如果您执行以下操作:
go env | grep GOTOOLDIR
cd <value of GOTOOLDIR>
ls您应该看到以下内容(请注意compile二进制文件):
addr2line buildid cover fix objdump test2jsonapi
cgo dist link pack trace
asm compile doc nm pprof vet如果没有,那么您可能切换到了错误的/被覆盖的/更早的Go安装。
解决方案:
https://stackoverflow.com/questions/51182422
复制相似问题