这篇文章本不该有,但是我安装abigen的经历实在是太艰辛了,还是记录下吧。
1. 正确姿势
先说正确姿势,希望你能顺利。
一般来说,安装abigen命令,只需要三步就可以搞定的,下载,编译,安装。
go get github.com/ethereum/go-ethereum
cd $GOPATH/src/github.com/ethereum/go-ethereum/
make
make devtools
abigen --help
2. 坑一之科学上网
在执行make devtools
时,需要下载相关依赖,有golang.org的,也有github的,可怜的我一会开一会关,仍然不行,原因是Makefile
里是这么写的
(看到
-u
了吧?你一定看到了!)我不想修改Makefile,所以就单条执行了。
3. 坑二之go版本bug
我的机器上,用的是go1.10,在最后一步go install ./cmd/abigen
时,会遇到一个错误
# github.com/ethereum/go-ethereum/cmd/abigen
/usr/local/Cellar/go/1.10/libexec/pkg/tool/darwin_amd64/link: /usr/local/Cellar/go/1.10/libexec/pkg/tool/darwin_amd64/link: combining dwarf failed: Unknown load command 0x32 (50)
这个问题坑的我够呛,过程十分艰辛,后来终于在github上找到这个Issue,原来是Go版本问题,果断升级到1.11
brew upgrade go
再执行go install ./cmd/abigen
果然就可以了。
希望对你有用。
另外我维护有一系列开发者社区,如果对Go语言感兴趣,可以加妹子微信grey0805,加你进群交流。
有疑问加站长微信联系(非本文作者)