没有搞错!(我搞错了!!原来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学习Istio! 章节索引 第03章:使用Helmfile安装应用程序 第04章:运行应用程序性能测试 第05章:安装Istio + istioctl 第06章:Istio:跟踪 第07章:Istio:可观察性 第08章:Istio:带有证书...
斗图神器2.0__使用Golang_重构_!!_收集了成千上万的撕逼斗图表情包,在这里你可以快速找到_Dou-figure-alfred-workflow.zip
我分享了一份Golang垃圾回收面试宝典,该宝典涵盖了Golang垃圾回收的基础知识、运行时机制、算法实现、调优等方面,旨在帮助读者更好地了解和掌握Golang垃圾回收相关知识。如果你正在为Golang垃圾回收面试而烦恼,...
weixin-golang-sdk 微信golang工具包
杜松子酒模板 Golang模板! 已弃用!!! 请考虑尝试迁移到高威是一个基于golang html / template的轻量级,简单易用的模板库,用于构建Go Web应用程序。 请考虑尝试迁移到 。特征gin框架易于使用。 使用golang ...
本文将深入探讨如何在Golang中解析PKCS#1和PKCS#8格式的私钥,以及与数字证书相关的概念。 首先,让我们了解一些基本概念: 1. **数字证书(Digital Certificate)**:也称为X.509证书,是一种标准格式,用于在...
它可以完全在您的浏览器中运行一个简单的操场,即play.golang.org! 您可以在这里尝试:https://ccbrown.git wasm-go-playground这是为WASM编译的Go编译器(“ gc”),在您的浏览器中运行! 它可以完全在您的...
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中,大文件上传是一项常见的任务,特别是在构建Web应用程序时。`golang大文件上传`这个主题涉及到了如何高效、安全地处理用户上传的大型文件。在本篇文章中,我们将深入探讨Golang实现大文件上传的关键知识...
在与数据库交互方面,Go 提供了多种库和驱动,其中之一就是 "golang-odbc",它允许 Go 代码与支持 ODBC(Open Database Connectivity)的数据库进行通信。ODBC 是一个标准的 API,它提供了一个统一的方式来访问各种...
golang区块链入门案例(源码),非常优秀的学习资源! golang区块链入门案例(源码),非常优秀的学习资源! golang区块链入门案例(源码),非常优秀的学习资源! golang区块链入门案例(源码),非常优秀的学习...
Golang Windows 1.19.1版本安装包
golang圣经.pdf, 需要的同学下载吧!golang圣经.pdf, 需要的同学下载吧!
golang 实现海康相机抓拍,目前只支持球机。需要在代码中设置用户名和密码。 如何调试?用vscode打开,安装golang插件,即可直接调试运行。 编译与运行:运行go build命令,将HKnet.exe拷贝到build\Windows下,运行...
Golang,作为一种现代且高效的编程语言,因其强大的系统级编程能力和并发特性而受到广泛欢迎。在本文中,我们将深入探讨如何利用Golang实现这个功能,并了解相关的核心知识点。 首先,我们需要了解的是Golang的图形...
golang提取office文件内容,可以支持正常office文件内容格式,可以很好的提取标点以及内在格式内容
在Golang生态系统中,`golang.org/x`是一个非常重要的包集合,它包含了大量由Go官方维护和贡献的扩展库。这些包覆盖了各种功能,从网络编程到文本处理,为Go开发者提供了丰富的工具和解决方案。`golang.org/x`包系列...
在IT行业中,Go语言(Golang)是一种广泛用于构建高效、可扩展的网络服务和工具的语言。本项目涉及的是一个Golang实现的串口服务测试,主要关注的是如何使用Go进行串口通信以及进行测试。串口通信是计算机通信的一种...
Go语言,又称Golang,是由Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言。它设计的目标是提高开发者的生产效率,同时保持系统级编程的性能。Go语言的设计受到了C、 Pascal、 Miranda和...