go语言的编译方法 go语言编程

Go 是怎么使用 Go 来编译自身的Go是一个图灵完备go语言的编译方法的语言
任何图灵完备的语言理论上都可以用来编译自身 。比如c/c++, java, vb, php等等都可以 。
至于怎么编译自身的:
用其它语言比如c++实现一个[Go语言编译器-1]
用Go语言写一个[Go语言编译器-2]
用这个c++实现的[Go语言编译器-1]编译第2步里面说的Go语言写的[Go语言编译器-2]
用第3步得到的[Go语言编译器-2]go语言的编译方法 , 再编译一次第2步里面说的[Go语言编译器-2]的源码 。
OKgo语言的编译方法,现在有一个Go语言实现的编译器go语言的编译方法了go语言的编译方法,最开始那个c++写的编译器没用了,可以扔掉不要了 。以后就不停的优化使用这个Go语言实现的自身的编译器就行了 。
如何编译arm linux的goGolang也就是Go语言,现在已经发行到1.4.1版本了 , 语言特性优越性和背后Google强大靠山什么的就不多说了 。Golang的官方提供了多个平台上的二进制安装包 , 遗憾的是并非没有发布ARM平台的二进制安装包 。ARM平台没办法直接从下载二进制安装包来安装 , 好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装 。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤 。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的 。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的 。因此,首先要配置好C编译工具:
1.1 在Ubuntu或Debian平台上可以使用sudo apt-get install gcc libc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装 。
1.2 在RedHat或CentOS 6平台上可以使用sudo yum install gcc libc-devel命令安装 。
安装完成后可以输入 gcc --version命令验证是否成功安装 。
2、获取golang源代码
2.1 直接从下载源代码压缩包 。
golang提供golang的源代码压缩包,可以直接下载 , 最新的1.4.1版本源代码链接:
2.2 使用git工具获取 。
golang使用git版本管理工具 , 也可以使用git获取golang源代码 。推荐使用这个方法,因为以后可以随时获取最新的golang源代码 。
2.2.1 首先确认ARM平台上已经安装了git工具,可以使用git --version命令确认 。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:
2.2.2 克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录 。然后以下命令获取代码仓库:
git clone
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功 , 原因大家都懂的 。好在google已经将golang也托管到github上面,所以也可以通过下面命令获?。?
git clone
视网络情况,下载可能需要不少时间 。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆= =
下载完成后,可以看到目录下多了一个go目录 , 里面即为golang的源代码,在终端上执行cd go命令进入该目录 。
执行下面命令检出go1.4.1版本的源代码,因为现在已经有新的代码提交上去了,最新的代码可能不是最稳定的:
git checkout go1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义 。
3.1 GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录 。一般可以不用设置这个环境变量 , 因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值 。为了保险起见 , 可以直接设置为go目录的路径 。

推荐阅读