go 语言源码编译

   先在https://github.com/golang/go上fork一下自己的分支,然后执行以下命令下载代码到自己机器。

git clone git@github.com:tanruixing88/go.git goroot

   上面的命令较慢,另开一个窗口,执行以下命令,构建go bootstrap toolchain。go语言官网提到go1.4版本是用c实现工具链的最新版,这也是其它go源码编译代码需要这个go1.4版本的原因。

mkdir bootstrap #其中bootstrap目录与前面下载go代码生成的goroot目录是平级的,当然读者可以自己定义
cd bootstrap

wget https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz #下载1.4的版本
tar -zxvf go1.4-bootstrap-20171003.tar.gz #解压此包会有一个go目录,然后进入
cd go

    进入go1.4的目录go下以后,再进入src目录,并设置环境变量CGO_ENABLED=0,运行脚本make.bash


cd src
export CGO_ENABLED=0 #设置不使用cgo,题外话,cgo,gccgo好难编译。。。
echo $CGO_ENABLED  #观察是否设置成功
sh make.bash

    执行完上面的命令后,若出现以下的输出,则说明安装成功。

    Installed Go for linux/amd64 in /root/go/bootstrap/go
    Installed commands in /root/go/bootstrap/go/bin

    根据输出发现编译的镜像生成到/root/go/bootstrap/go/bin里,这也是我们刚刚解压的go 1.4包,执行编译生成的路径,进入该路径发现里面有go和gofmt镜像。即执行命令cd /root/go/bootstrap/go/bin,执行ls命令发现go和gofmt两个文件。

    设置相关环境变量用于区分root和path路径。

#设置驱动工具链的路径
export GOROOT_BOOTSTRAP=/root/go/bootstrap/go/
echo $GOROOT_BOOTSTRAP

export GOROOT=/root/go/root
export GOPATH=/root/go/project
export PATH=$PATH:$GOROOT/bin

   进入/root/go/root/src目录,执行all.bash脚本

cd /root/go/root/src
sh all.bash

    若遇到如下输出,则说明编译成功

     ALL TESTS PASSED
---
Installed Go for linux/amd64 in /root/go/root
Installed commands in /root/go/root/bin

    进入$GOPATH路径里新建一个简单的go文件(比如a.go)进行测试一下,执行go run a.go,发现能够输出则成功

 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值