LoginSignup
14
12

More than 5 years have passed since last update.

goでlinux Armバイナリをクロスコンパイルする

Posted at

概要

自宅では 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

動いた!

14
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
12