在Raspberry Pi上golang怎么用

发布时间:2021-11-26 15:39:00 作者:小新
来源:亿速云 阅读:214

这篇文章将为大家详细讲解有关在Raspberry Pi上golang怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Raspberry上编译前准备及配置

一。俗话说巧妇难为无米之炊,要编译源码先得下源码,下载后这里解压到 /home/pi/go 目录下。

二。确认需要的工具系统已经具备了:mercurial 、gcc 和 libc6-dev 。如果不确定有没有只需输入下列命令:

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

以上命令实现安装3个必需的工具。

三。配置环境变量。因为第一点的时候我把下载下来的源码解压到/home/pi/go 目录下了,所以将GOROOT变量值设置为该路径:

export GOROOT=/home/pi/go

export GOARCH=arm

但其实不设置的话也是可以的,它默认是等一下命令行执行位置的父目录。

四。也是配置环境变量。GOARM 变量可以不设置,默认值为:“6″。但是实际中证明,如果不设置为值为“5″的话,编译会出现如下的错误:SIGILL: illegal instruction 。那么设置为5和6有什么区别呢?将 GOARM 设置为5会引起连接器发出指令来调用软件浮点数实现,而非使用硬件浮点数支持。

export GOARM=”5″

五。分配更多的内存给cpu使用。这不是必须的,更大的内存有助于缩减编译时间。使用:sudo raspi-config 中的memory_split功能来实现。

Raspberry上编译golang

打开命令行,进入go目录下的src目录:

cd /home/pi/go/src

运行all.bash脚本

./all.bash

或者你想看看整个编译耗时多少的话可以这样:

time ./all.bash 

好了。经过漫长的时间后:

pi@raspberrypi ~/go/src $ time ./all.bash

real 47m34.894s
user 44m23.260s
sys 2m6.690s

整个过程消耗了47分钟。编译完成了。而在我的电脑上这个过程只需要3分钟。

小结

以上过程只是在Rapsberry上编译golang的编译器,如果我们只想在Raspberry上运行go语言编写的程序,那大可不用这样子,我们可以使用交叉编译在自己的电脑上完成代码的编译后copy到Raspberry上运行便可了。

如何上golang官网

最近发现go语言的官网已经无法访问了,这给学习带来很多不便。这里提供一个比较简单的方法。

一。输入命令:nslookup www.google.com 8.8.8.8

得到google的ip地址列表若干,然后随机复制一个ip,在浏览器上输入,看看能否打开google的搜索页面。如果能,则继续第二步。

二。打开系统hosts文件,ubuntu12下默认为/etc/hosts 。加入一行:

<第一步得到的ip地址> golang.org

例如:74.125.128.102 golang.org

好了,看看可以打开官网了吗!

在ubuntun上编译go程序在Raspberry上运行

其实就是交叉编译。将golang源码解压到/home/lixin/soft/goarm5目录下。

命令行进入到/home/lixin/soft/goarm5/src 。

运行如下命令:

export GOROOT=/home/lixin/soft/goarm5

export GOARCH=arm

export GOARM=5

./all.bash

大概几分钟后,就建好了适合Raspberry上运行的编译器了。

接着来些个hello world测试程序。

vim /home/lixin/main.go

main.go文件内容如下:

package main
import “fmt”
func main(){
fmt.Println(“hello lixin”)
}

交叉编译:

/home/lixin/soft/goarm5/bin/go build ./main.go

将生成的main文件拷贝到Raspberry上运行。非常好,正确的在屏幕中打印出“hello lixin”

关于“在Raspberry Pi上golang怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

推荐阅读:
  1. Raspberry pi 蓝牙音响播放
  2. Raspberry pi wifi热点续

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

golang raspberry pi

上一篇:C++怎么将重载的运算符定义在操作对象的命名空间内

下一篇:C#如何实现基于Socket套接字的网络通信封装

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》