`
Adela_09
  • 浏览: 16435 次
社区版块
存档分类
最新评论

祝Golang生日快乐!

阅读更多

没有搞错!(我搞错了!!原来Go是在光棍节生的XD)Google Go的第一个版本就是在三年前发布的。现在它已经从只是一个实验性的语言成长为可以用到生产环境的语言了。


Go适用于所有大型平台和架构,比如说,Windows,Linux,MacOS,x86 或 ARM。作为一个用ARM芯片的Raspberry Pi 的欢乐的买家,我尝试编译一个Go v1.0.3,但是失败了!

 

$ ./make.bash 
# Building C bootstrap tool.
cmd/dist

# Building compilers and Go bootstrap tool for host, linux/arm.
lib9
[..]
pkg/go/build
cmd/go
SIGILL: illegal instruction
PC=0x7bfa8

math.init•1()


尝试在Pi上编译Go1.0.3但是完败。


这个错误在代码库里已经修复,而且很可能会加入到Go的1.1版本。这篇文章描述了在Raspberry Pi上从源码编译和安装Go的步骤。

 

准备一个Raspberry


Raspberry Pi 配置256MB或512MB的内存。编译和链接Go编译器会耗掉200+MB的内存,所以涅,如果你的Pi是256M版本的话,我建议你至少在运行Go代码的时候为了主处理器调整一下内存分区。这个在你编译Go程序的时候同样适用,牢记!

 

调整内存分区最简单的办法可以用raspi-conifg实用程序:

 

 

 

在raspi-config中选择memory_split

 


用240配置(240MB给CPU,16MB给VideoCore)


改完配置以后输入

 

sudo shutdown –r now

 

然后重启Raspberry Pi。

 

安装必要的工具和库

Raspbian的安装包有我们需要的所有工具。要从源码编译一个Go我们需要Mercurial和一个C编译器。

 

sudo apt-get install -y mercurial gcc libc6-dev

 

万事俱备只欠东风!现在要clone源码,然后编译Go!

 

Clone源代码


Google Go是托管在Google Code上,用Mercurial做源代码管理。

 

 

$ hg clone https://code.google.com/p/go/ $HOME/go

Clone Google 

 

执行这个语句会复制源码到Go目录下的你的主目录里面。

 

编译Go

 

Go有大量的Bash脚本可以用于编译源码。最简便快捷的方式就是在src目录底下执行这个make.bash的脚本。

 

cd $HOME/go/src
./make.bash

 

这个脚本只会编译源码和在$HOME/go/bin留下最后的二进制文件。如果你想执行全部的测试程序,你可以执行all.bash(一个能编译和测试Go的Bash脚本)或者在初始编译的时候就执行test.bash。

 

把Go添加到你的PATH

 

要从命令行直接执行Go的话,你需要把它加到PATH里去。


添加下面两行到.bashrc:

 

 

export PATH=$PATH:$HOME/go/bin

    Adding Go to your PATH

 

 

完工,烤Pi(Pie派)

 

Go装好了,然后我们可以开始烤这个Pi!

 

 

$ go run main.go
         (
          )
     __..---..__
 ,-='  /  |  \   =-.
:--..___________..--;
 \.,_____________,./
  Happy Birthday Go!
 

 

祝Go好好享受这个蛋糕哦

 

现在随你去发掘安装在Raspberry Pi上的Go的潜力。看看Go和Raspberry Pi还能干什么吧!

 

 

package main;

import "fmt"

func main() {
  fmt.Println("         (")
  fmt.Println("          )")
  fmt.Println("     __..---..__")
  fmt.Println(" ,-='  /  |  \\  `=-.")
  fmt.Println(":--..___________..--;")
  fmt.Println(" \\.,_____________,./")
  fmt.Println("  Happy Birthday Go!")
}
 

 Code for the program above (main.go) 

 

你用Raspberry Pi 和Go造了什么神奇的东西了吗?跟帖分享一下吧!

 

其它资源:

 

 

 

原外文链接见:http://geekmonkey.org/articles/38-baking-a-pi-for-google-go

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics