101010

プログラミング備忘録とともに、ポエムってます。

Go言語でラズパイ用にクロスコンパイル!⚡ | Raspberry Pi

f:id:araemonz:20190317024737j:plain

ラズパイでの開発やクロスコンパイルのことを調べていたら、以前から気になっていたGo言語が良さそうな気がしてきた。そこでGo言語を使ってMac上でクロスコンパイルして、ラズパイでハローワールドを実行させてみた。

MacでGO言語をつかえるようにする

$ brew install go
$ go version
go version go1.12.1 darwin/amd64

ハローワールドプログラム

Macでhello.goファイルを作り次の通り行っていく。

package main
import "fmt"

func main() {
    fmt.Printf("Hello World!\n")
}

プログラムの実行

$ go run hello.go  

プログラムのビルドと実行

$ go build hello.go
$  ./hello

クロスコンパイルする

ラズパイのハードウェアタイプがこのようになっている場合、、、

$ uname -m
armv6l

なんと、次のように書くだけでクロスコンパイル出来てしまう!

$ GOOS=linux GOARCH=arm GOARM=6 go build hello.go

バイナリファイルをラズパイへ転送する

$ scp hello pi@0.local:/home/pi/

ラズパイで実行してみよう

ラズパイ側で実行してみると、、、

$ ./hello 
Hello World!

みごと実行できた!!! クロスコンパイル大成功!!!⚡⚡⚡

ちなみにGo言語はこちらをみるとかなり人気の言語になってきているようだ。

https://www.benfrederickson.com/ranking-programming-languages-by-github-users/

参考