没有搞错!(我搞错了!!原来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
分享到:
相关推荐
golang中文手册.chm,学习golang语言的字典,一典在手,天下我有
杜松子酒模板 Golang模板! 已弃用!!! 请考虑尝试迁移到高威是一个基于golang html / template的轻量级,简单易用的模板库,用于构建Go Web应用程序。 请考虑尝试迁移到 。特征gin框架易于使用。 使用golang ...
我分享了一份Golang垃圾回收面试宝典,该宝典涵盖了Golang垃圾回收的基础知识、运行时机制、算法实现、调优等方面,旨在帮助读者更好地了解和掌握Golang垃圾回收相关知识。如果你正在为Golang垃圾回收面试而烦恼,...
golang中文手册.rar
它可以完全在您的浏览器中运行一个简单的操场,即play.golang.org! 您可以在这里尝试:https://ccbrown.git wasm-go-playground这是为WASM编译的Go编译器(“ gc”),在您的浏览器中运行! 它可以完全在您的...
golang解析数字证书 PKCS#1 PKCS#8格式的私钥
在Centos7安装golang教程
golang开发modbus rtu实例,使用golang与Modbus Slave软件进行模拟测试。
Golang 1.18.10 Windows安装包。Golang 1.18.10 Windows安装包。Golang 1.18.10 Windows安装包。Golang 1.18.10 Windows安装包。Golang 1.18.10 Windows安装包。Golang 1.18.10 Windows安装包。Golang 1.18.10 ...
golang_http_client
golang-odbc 驱动
golang圣经.pdf, 需要的同学下载吧!golang圣经.pdf, 需要的同学下载吧!
golang提取office文件内容,可以支持正常office文件内容格式,可以很好的提取标点以及内在格式内容
golang 1.14.2 mips 龙芯版,用于龙芯系列处理器的专属预编译golang语言sdk开发包,因为golang官方默认不提供golang语言的龙芯处理器版本,大家都需要自己从头编译golang才能在龙芯机器里面用,这个是提前打包好的,...
golang 敏感词过滤
golang使用bass.dll播放mp3文件
golang函数查询手册.chm
golang go面试题
golang 中文离线文档,直接解压,运行pkgdoc.exe后,会跳出本地文档地址,默认127.0.0.1:9999
Python是时髦的机器学习御用开发语言,Golang是大红大紫的新时代后端开发语言。Python很适合让搞算法的写写模型,而Golang很适合提供API服务,两位同志都红的发紫,这里就介绍一下正确搅基的办法。 go 中的 cgo 模块...