溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

在Raspberry Pi上golang怎么用

發(fā)布時間:2021-11-26 15:39:00 來源:億速云 閱讀:220 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章將為大家詳細(xì)講解有關(guān)在Raspberry Pi上golang怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Raspberry上編譯前準(zhǔn)備及配置

一。俗話說巧婦難為無米之炊,要編譯源碼先得下源碼,下載后這里解壓到 /home/pi/go 目錄下。

二。確認(rèn)需要的工具系統(tǒng)已經(jīng)具備了:mercurial 、gcc 和 libc6-dev 。如果不確定有沒有只需輸入下列命令:

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

以上命令實現(xiàn)安裝3個必需的工具。

三。配置環(huán)境變量。因為第一點的時候我把下載下來的源碼解壓到/home/pi/go 目錄下了,所以將GOROOT變量值設(shè)置為該路徑:

export GOROOT=/home/pi/go

export GOARCH=arm

但其實不設(shè)置的話也是可以的,它默認(rèn)是等一下命令行執(zhí)行位置的父目錄。

四。也是配置環(huán)境變量。GOARM 變量可以不設(shè)置,默認(rèn)值為:“6″。但是實際中證明,如果不設(shè)置為值為“5″的話,編譯會出現(xiàn)如下的錯誤:SIGILL: illegal instruction 。那么設(shè)置為5和6有什么區(qū)別呢?將 GOARM 設(shè)置為5會引起連接器發(fā)出指令來調(diào)用軟件浮點數(shù)實現(xiàn),而非使用硬件浮點數(shù)支持。

export GOARM=”5″

五。分配更多的內(nèi)存給cpu使用。這不是必須的,更大的內(nèi)存有助于縮減編譯時間。使用:sudo raspi-config 中的memory_split功能來實現(xiàn)。

Raspberry上編譯golang

打開命令行,進(jìn)入go目錄下的src目錄:

cd /home/pi/go/src

運行all.bash腳本

./all.bash

或者你想看看整個編譯耗時多少的話可以這樣:

time ./all.bash 

好了。經(jīng)過漫長的時間后:

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

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

整個過程消耗了47分鐘。編譯完成了。而在我的電腦上這個過程只需要3分鐘。

小結(jié)

以上過程只是在Rapsberry上編譯golang的編譯器,如果我們只想在Raspberry上運行g(shù)o語言編寫的程序,那大可不用這樣子,我們可以使用交叉編譯在自己的電腦上完成代碼的編譯后copy到Raspberry上運行便可了。

如何上golang官網(wǎng)

最近發(fā)現(xiàn)go語言的官網(wǎng)已經(jīng)無法訪問了,這給學(xué)習(xí)帶來很多不便。這里提供一個比較簡單的方法。

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

得到google的ip地址列表若干,然后隨機(jī)復(fù)制一個ip,在瀏覽器上輸入,看看能否打開google的搜索頁面。如果能,則繼續(xù)第二步。

二。打開系統(tǒng)hosts文件,ubuntu12下默認(rèn)為/etc/hosts 。加入一行:

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

例如:74.125.128.102 golang.org

好了,看看可以打開官網(wǎng)了嗎!

在ubuntun上編譯go程序在Raspberry上運行

其實就是交叉編譯。將golang源碼解壓到/home/lixin/soft/goarm5目錄下。

命令行進(jìn)入到/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文件內(nèi)容如下:

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

交叉編譯:

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

將生成的main文件拷貝到Raspberry上運行。非常好,正確的在屏幕中打印出“hello lixin”

關(guān)于“在Raspberry Pi上golang怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI