源码编译go-ethereum总是报错
发布于 2 年前 作者 sunnyFrank 3702 次浏览 来自

我的golang 环境是

	  GOARCH="386"
	  GOBIN="/usr/go/bin"
	  GOEXE=""
	  GOHOSTARCH="amd64"
	  GOHOSTOS="linux"
	  GOOS="linux"
	  GOPATH="/home/fan/Go/Project"
	  GORACE=""
	  GOROOT="/usr/go"
	  GOTOOLDIR="/usr/go/pkg/tool/linux_amd64"
	  GCCGO="gccgo"
	  GO386=""
	  CC="gcc"
	  GOGCCFLAGS="-fPIC -m32 -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build377276030=/tmp/go-build -gno-reco       rd-gcc-switches"
	  CXX="g++"
	  CGO_ENABLED="0"
	  PKG_CONFIG="pkg-config"
	  CGO_CFLAGS="-g -O2"
	  CGO_CPPFLAGS=""
	  CGO_CXXFLAGS="-g -O2"
	  CGO_FFLAGS="-g -O2"
	  CGO_LDFLAGS="-g -O2"

遇到的错

	  build/env.sh go run build/ci.go install ./cmd/geth
	  >>> /usr/go/bin/go install -ldflags -X main.gitCommit=3556962053267def82f1a9f9e97a26f7b7c1450e -v ./cmd/geth
	  go install: cannot install cross-compiled binaries when GOBIN is set
	  util.go:44: exit status 1
	  exit status 1
	  Makefile:15: recipe for target 'geth' failed
	  make: *** [geth] Error 1
6 回复

go-ethereum放到GOPATH下再make 路径应该是$GOPATH/src/github.com/ethereum/go-ethereum,然后再make编译

@maiiz fan@fan:~/Go/Project/src/github.com/ethereum/go-ethereum$ make geth build/env.sh go run build/ci.go install ./cmd/geth

/usr/go/bin/go install -ldflags -X main.gitCommit=3556962053267def82f1a9f9e97a26f7b7c1450e -v ./cmd/geth go install: cannot install cross-compiled binaries when GOBIN is set util.go:44: exit status 1 exit status 1 Makefile:15: recipe for target ‘geth’ failed make: *** [geth] Error 1

@maiiz 是不是因为我自己手动安装了一个golang,自己设置的GoRoot和GoPath,GoBin,如果我用sudo apt install golang 直接安装是不报这个错误,但是直接安装的版本是1.6,不符合>1.7版本的要求。编译还是无法进行

@sunnyFrank 你按我说的做了么?反正放到GOPATH下理论上编译没啥问题,看你的环境变量,和你现在的路径,你的项目并不在GOPATH下面。

@maiiz 一直都在gopath下

@sunnyFrank 哦,那不应该没有问题才对,之前编译按官方文档说明,放在GOPATH下一直是没啥问题的, 我看error信息里提示go install: cannot install cross-compiled binaries when GOBIN is set,把GOBIN环境变量干掉看看? 或者重新搞个GO相关环境,放到GOPATH下再看看。

回到顶部