##概要
自宅では ReadyNAS® 104を使っているのですが、
そいつで自作ツールを動かしたくなったので、arm用にクロスコンパイルする方法を調べました。
##環境の確認
まず、kernelを確認する
# uname -m
armv7l
arm v7 ぽいことがわかった。
https://github.com/golang/go/wiki/GoArm
で確認したところ、対応してる!
##前準備
とりあえず、 いつもと同じように make.bashで前準備を行う
# cd /usr/local/go/src/
# GOOS=linux GOARCH=arm ./make.bash
実行結果はいつもと同じように流れる
# Building C bootstrap tool.
cmd/dist
# Building compilers and Go bootstrap tool for host, darwin/amd64.
lib9
libbio
liblink
cmd/cc
cmd/gc
cmd/6l
cmd/5l
.
.
.
##コンパイル
このコードを
main.go
package main
import "fmt"
func main() {
fmt.Println("hoge")
}
GOARMでバージョンを指定してビルド
$ GOOS=linux GOARCH=arm GOARM=7 go build
そしてターゲットにコピーして実行
$ scp armtest hogefuga:
$ ssh hogefuga
$ ./armtest
hoge
動いた!