在PocketCHIP上尝试运行Go的GUI应用程序

最近,Go语言在支持服务器端服务的领域表现出色,但我现在正在思考它是否可以在一些不同的领域中也能活跃。

使PocketCHIP能够编写Go语言。

我之前购买了PocketCHIP。
首先,我会配置它,使其能够编译Go语言。

PocketCHIP是一款类似于Raspberry Pi的设备,它具有类似于旧款Game Boy的外形,配备有彩色显示屏和键盘。

pocketchip

我們選擇了ARM架構。雖然可以在其他機器上交叉編譯並執行二進制文件,但由於有鍵盤的便利,我們希望能夠即時編寫並執行代碼。

设置Go语言环境

简单地去吧。

使用此链接https://golang.org/dl/下载适用于ARM处理器的编译器,然后将其安装。关于ARM的相关文档可以参考这里https://github.com/golang/go/wiki/GoArm。

由于连接到WiFi,所以可以使用wget(对于go1.7.4版本)。

$ wget https://storage.googleapis.com/golang/go1.7.4.linux-armv6l.tar.gz
$ tar xzf go1.7.4.linux-armv6l.tar.gz
$ export PATH=$HOME/go/bin:$HOME/bin:$PATH; export GOROOT=$HOME/go; export GOPATH=$HOME

查看go env时:

$ go env
GOARCH="arm"
GOBIN=""
GOEXE=""
GOHOSTARCH="arm"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/home/chip/go"
GOTOOLDIR="/home/chip/go/pkg/tool/linux_arm"
CC="gcc"
GOGCCFLAGS="-fPIC -marm -pthread -fmessage-length=0"
CXX="g++"
CGO_ENABLED="1"

这个看起来能用。编辑器很烦人的话,就用vim吧。2

尝试运行Go的GUI应用程序(示例)。

趁着X11正在运行,我们来尝试运行GUI应用程序吧。3

$ go get golang.org/x/exp/shiny
$ go get golang.org/x/mobile

确认行动

$ go run src/golang.org/x/exp/shiny/example/basic/main.go

虽然编译需要一些时间,但它可以运行!

IMG_6750.jpg

飞扬的地鼠也在运动。

$ sudo apt-get install build-essential
$ sudo apt-get install libegl1-mesa-dev libgles2-mesa-dev libx11-dev
$ cd golang.org/x/mobile/example/flappy
$ go build
$ ./flappy
IMG_6751.jpg

通过点击屏幕,可以正常跳跃。

总结

出乎意料之外,GUI应用轻松运行起来了。基本上它与桌面Linux一样运行着X11,所以说它能动起来也不奇怪,但也有些感动。

可能可以試試在平時不常適使用的場合下使用Go去完成任務,這樣可能會有不同的感覺。

那么,现在开始吧!

感谢有go1.6以后提供了适用于ARM的编译器。
我是emacs用户。
在go1之前,好像有exp/draw/x11包存在。
bannerAds