vimer linux kernel 爱好者

debian riscv 源码编译golang及proxy使用

2022-07-30

出于验证一个测试程序的目的,需要在riscv64的板子上源码安装golang,原本很简单的事情,但是操作之后才发现不是这回事,故这里简单记录下,以便后面需要时用到。

以下操作是在mengzhuo老师的指导下完成。

首先知道的一点是,源码编译go, here,另外golang目前(2022/08/01)还没有riscv64的二进制包,需要更需要从源码编译。从源码编译,需要有一个自举的过程,但是Bootstrap toolchain from C source code 1.4 版本还不支持rv,所以,这里就麻烦一些了。

步骤

首先安装 golang-go - Go programming language compiler, linker, compiled stdlib. 在目前的debian系统上,已经默认安装支持golang-go,一定要使用这个,不要使用gccgo,后者的问题非常多。

apt install golang-go

然后 go version就可以看到相应的输出了。在相同的terminal下,然后下载 golang 的source code,我下载的是 go version go1.18.4.解压,然后执行./make.bash即可。

这个时候或者编译完成后,如果go version提示说找不到相关命令,大概率是由于 goroot gopath的相关路径不对。

环境变量

GOROOT

GOROOT=/home/vimer/go/go/

这里其实就是指向的你的go源码的位置:

vimer@unmatched:~/go/go$ ls
AUTHORS          CONTRIBUTORS  PATENTS    SECURITY.md  api  codereview.cfg  lib   pkg  test
CONTRIBUTING.md  LICENSE       README.md  VERSION      bin  doc             misc  src

紧接着,要把 go的可执行程序加入$PATH中:

export PATH=$PATH:$GOROOT/bin

GOPATH

还有一个是GOPATH:

GOPATH="/home/vimer/go/proj"

这个是用来存储相关go的生成物的。

GOPROXY

因为go是google开发的嘛,有些东西timeout是不可避免的,所以遇到这种问题时,需要使用:

GOPROXY="https://proxy.golang.com.cn"

上一篇 gcc-12 ftbfs

Comments

Content