最近几年Go语言的使用已经是越来越广泛了,在容器相关的领域也建立了自己不可动摇的地位。作为一个开源的 编程语言 ,想要真正的掌握好它,真正的精通,研究它的 源码 是必不可少的了。而研究Go语言的源码,就需要从编译Go语言的源码开始了。
Go语言源码的获取
既然是开源的东西,想要获取它的源码自然是需要到全球最大的同性交友网站上找找啦!在GayHub上直接搜索Go,排在第一个的就是Go的源码了:
拿到 git 地址后clone下来,目前最新的release版本是1.12的了,为了更好的进行研究,我们先切到1.12版本,后续我们的各种研究也将是在这个分支上进行的。
拿到源码就可以开始编译了吗
No!No!NO!当我们拿到源码是不能直接编译的!
这是因为Go源码的编译也是由Go来完成的,如果把源码看成是鸡蛋,想要把鸡蛋孵出小鸡就需要母鸡来孵小鸡,可是母鸡还在鸡蛋里呢,这就尴尬了呀!那怎么办呢?当然是从 其它地方 抓只母鸡来孵小鸡啦,我们可以去golang的官网下载Go语言的最新版本,这样孵小鸡的母鸡也有啦!
这就够了吗?还不够!要想孵小鸡,你还得 给它 撘一个舒适的鸡窝,这个鸡窝就是 gcc 。
默认情况下Go语言源码编译需要使用到gcc,我使用的是windows电脑,安装的是 mingw 版本的gcc。我们不仅要有孵小鸡的鸡窝,还要是对的那种鸡窝,万一你选了一个不合适的鸡窝,也是孵不出小鸡滴:
报这个错是由于gcc版本和系统不匹配导致的,我的系统是64位的,如果安装的是32位的gcc,那么编译的时候就会报这个错误。
终于可以开始编译啦
当我们把环境搞定以后,就可以开始编译Go源码啦!编译过程非常简单,只需要一个命令就ok了。
执行命令之后,等着就可以啦,一般执行时间不会太久:
编译结果最终会保存在bin目录中,我们可以进入该目录然后看看其执行version命令来看看它的版本:
好啦,Go源码编译的介绍就差不多是这样啦!接下来我们就可以慢慢研究Go的源码了,感兴趣的朋友可以点个关注!