- The GCC 11 releases include a complete implementation of the Go 1.16.3 release.
也就是说gccgo-11是可以编译go 1.16.3的程序的,对目前来说已经足够,不会出现方法未定义等问题。
当然,编译安装也是可行的,但是在时间和存储空间上都不太合算,因此可以参考下面的方法,通过添加软件源进行直接安装。
安装Go1.16.3
理论上安装1.16.3+版本都不会有太大问题,笔者测试时通过的安装版本为1.16.4
Ububtu20目前默认的Golang版本是1.13
,而虽然snap
可以安装任意版本,但是在构建gccgo所需std
库时会出现目录不可写的错误,因此需要从官网下载1.16.3
版本的安装包,解压到/usr/local
并将Go目录添加到$PATH
环境变量。
- 编辑
~/.bashrc
,添加
export PATH=$PATH:/usr/local/go/bin
- 刷新
source ~/.bashrc
安装GCCGo
1. 安装本体
先将ubuntu-toolchain-r/test PPA
添加到系统,然后直接进行安装即可1
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt install gccgo-11
2. 构建std库
输入如下命令构建gccgo所需std
库
go install -buildmode=shared -linkshared std
建立链接并验证安装
- 由于安装后gccgo位于
/usr/bin/gccgo-11
,还需要设置别名或直接将该文件链接到/usr/bin/gccgo
以使Go能正常识别。 - 现在已经安装成功,可以使用
-compiler gccgo
参数构建以进行验证。理论上编译出的文件应当比gc
编译出的小很多。