从github下载go-ethereum源码,然后用GoLand打开go-ethereum源码后,并不能自动成功编译,任意打开一个go文件,可以看到import那块代码里的github相关的会报错,提示找不到:go can’t find import: github.com/…,如interfaces.go这个文件中的:
import (
"context"
"errors"
"math/big"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/core/types"
)
的最后两句github.com代码会报错。
按如下步骤解决:
1.打开file->settings的GOPATH选项,设置Global GOPATH为之前安装go时设置的GOPATH路径。
如:我之前设置的GOPATH是/home/y/go路径,那么Global GOPATH就设置为这个路径即可。
如:
2.go项目的源码并不能随便放在任意位置,必须放在GOPATH目录下的src目录下,若没有src目录,则新建
mkdir src
3.上面import语句中可以看到前面是github.com/ethereum,所以要在src目录下新建github.com/ethereum目录。
mkdir -p github.com/ethereum
4.然后把下载下来的go-ethereum源码拷贝到src/github.com/ethereum目录下,若下载下来时的项目源码名是go-ethereum-1.8.13,则修改为go-ethereum
5.现在可以用GoLand重新导入项目源码了,open project时选择项目源码地址是:${GOPATH}/src/github.com/ethereum/go-ethereum
6.现在打开Run->Edit Configurations,按下图配置:
配置完成后既可以开始编译了,可以看到编译成功: