LoginSignup
1
0

More than 5 years have passed since last update.

Dockerを使ってMacでRustをRaspberry Pi3上のLinux向けにクロスコンパイルする

Posted at

やりかた

Ragnaroekさんが公開してくれているdocker imageを使うと簡単。ありがとうございます。
https://github.com/Ragnaroek/rust-on-raspberry-docker

で、このdocker imageを使いやすくするためにMakefileを書いた。
https://gist.github.com/kmtr/d28e28eac9d0b54ddbd0dbaaecee7267

このMakefileをcargoプロジェクトのルートに置いて、make docker-pullとすると、rust-on-raspberry-dockerのimageをpullする。

その後、make cargo-build-piとすると、raspi用のバイナリがtarget/arm-unknown-linux-gnueabihf/release 以下にビルドされる。
前処理の中でjqを使っているので、それだけhomebrewか何かで入れる必要がある。

動機

Mac上で書いたRustプログラムをraspi3上でベアメタルではなく、普通にLinux(Raspbian)で動かしたかった。
しかし単純にrustupでtargetを追加しただけだと、gcc-armとか諸々を入れる必要があり、Macの世界が汚れてしまうので微妙。ということでDockerでやることにした。

Web上でも似たような悩みを持つ人はいるようだが、「Dockerでやれば?」「ありがとう動いたよ」で完結していて具体的なやりかたが分からず、また2年前の情報とかでいろいろ古いケースもあり、未来の自分のために現時点でのやり方を(2017/06)まとめておきたかった。

1
0
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
1
0