Golang源码编译

Golang官网有各种安装包,不需安装解压就可使用,但有时候想调试或自已修改代码就需要自已编译安装。Golang 1.4版本以前是用C写的,可以直接用GCC编译;但到了1.5就开始用GO写,再用GCC就没法编译,需要用GO编译GO!所以如果要编译1.5及以上版本就需要先编译一个1.4版本的Go,或者直接下载各个版本的Go安装包。用这个编译好的Go去编译我们需要源码安装的Go。

安装前准备:

go1.4-bootstrap-20171003.tar.gz
go1.12.5.src.tar.gz

如上,我们用go1.4去源码安装go1.12.5。

编译安装go1.4:

将go1.4-bootstrap-20171003.tar.gz解压到go1.4-bootstrap:

cd /root/sandydu/
tar -zxf go1.4-bootstrap-20171003.tar.gz
mv go go1.4-bootstrap

编译go1.4-bootstrap:

cd go1.4-bootstrap/src
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 ./make.bash

安装验证:
在这里插入图片描述
会多出两个目录:bin和pkg,这里面就是后续编译go1.12.5需要用到的工具。

编译安装go1.12.5:

将go1.12.5.src.tar.gz解压到go1.12.5:

cd /root/sandydu/
tar -zxf go1.12.5.src.tar.gz
mv go go1.12.5

编译go1.12.5:

cd go1.12.5/src
GOROOT_BOOTSTRAP=/root/sandydu/go1.4-bootstrap GO_GCFLAGS="-N -l" ./all.bash

安装验证:
在这里插入图片描述
同样也会多出两个目录:bin和pkg。官网上通过go1.12.5.linux-amd64.tar.gz解压出来的内容和我们编译到go1.12.5目录的内容是一样的。

参考文献:
https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz

猜你喜欢

转载自blog.csdn.net/fengshenyun/article/details/92759566