RustでArmバイナリをビルドする
はじめに
今回はRustでArmバイナリをビルドする手順について紹介します。記事を作成するにあたり、以下の記事を参考にさせていただきました。
実行環境
- Ubuntu 20.04 LTS (WSL2)
1. 新しいプロジェクトの作成
今回は例としてhelloという名前でプロジェクトを作成します。
$ cargo new hello $ cd hello $ cargo run
Hello, world!
と表示されればひとまずOK。
2. .cargo/config
に設定を記述
.cargo/config
にクロスコンパイルするための設定を記述します。今回はtargetにarm-unknown-linux-gnueabi
を、linkerにarm-linux-gnueabi-gcc
を指定します。
.cargo
ディレクトリの作成
$ mkdir .cargo
.cargo/config
の中身
[target.arm-unknown-linux-gnueabi] linker = "arm-linux-gnueabi-gcc"
3. ツールチェーンを追加し、リンカをインストール
$ rustup target add arm-unknown-linux-gnueabi $ sudo apt install gcc-arm-linux-gnueabi
4. ターゲットを指定してビルド
$ cargo build --target=arm-unknown-linux-gnueabi
5. QEMUで実行
$ qemu-arm -L /usr/arm-linux-gnueabi/ target/arm-unknown-linux-gnueabi/debug/hello
Hello, world!
と表示されれば成功です。