通过编译源码安装Go

通过编译源码安装Go

1. 关键点:在当前的设备(系统+硬件)上要有一个可用的Go编译器

golang官网提供了四种构建一个可用Go编译器的方法:

  • 下载一个已经发布的go二进制文件
  • 使用一个可用的go来进行交叉编译(使用其他设备为此设备编译一个go)
  • 使用gccgo
  • 从Go 1.4编译一个go,Go1.4是最后一个使用C编写编译器的发行版本

2. 这里使用第四种方式:编译Go1.4

首先下载Go1.4的源码,地址为https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz,这个包经过修改可以在新版本的系统上编译,直接从go官网下载其他未经修改的go1.4源码可能无法编译。解压后放在~/go1.4-bootstrap-20171003文件夹内(不要将文件夹命名为go,避免和其他版本的源码混淆),进入src文件夹,执行以下命令:

./make.bash

编译成功后查看bin文件夹:

ls ../bin/

可以看到bin文件夹下有go和gofmt两个可执行文件,此时已有一个可用的go编译器。此时直接命令行输入go仍然无法找到go,这是由于没有将go所在文件夹加入环境变量中。

3. 下载要编译的Go的源码,这里下载go1.5。

首先将源码解压,放在go1.5文件内,进入src文件夹,执行以下命令:

 GOROOT_BOOTSTRAP=~/go1.4-bootstrap-20171003/go/ ./make.bash 

编译后查看bin目录,同样有go和fmt两个可执行文件,运行输出版本go1.5。类似的,使用go1.5也可以编译更高版本的go,只需要指定GOROOT_BOOTSTRAP为go1.5的位置。

早期版本的go对gcc版本同样有一定的要求,例如go1.5使用较新的gcc无法编译通过,这是由于新版gcc默认开启了pie,这里编译使用的是gcc4.8。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值