さび、クロスコンパイララズベリーパイプログラム
錆書き込みラズベリーパイプログラムを使用する場合は、直接コンパイルした場合には、より遅いゼロに立つことができないであれば、非常にゆっくりと、ラズベリーに来ます。それが最良のコンパイル後にマシンによって開発されたので、ラズベリーの操作に直接来ます。
開発マシンは、通常、x86アーキテクチャで異なるCPUアーキテクチャに起因して、オペレーティングシステムと開発マシンをターゲットには、システムは、ラズベリーパイのARMv6のかのARMv7たMAC、Linuxでは、Windows、およびLinuxのシステムとすることができます。特別な治療は、デフォルトのビルドツールは、プログラムチェーンは、他の特定のターゲットコンパイラの必要性のためのコンパイラツールチェーン、クロスコンパイラクロスコンパイルとして知られている方法を開発したマシン上で実行している場合にのみ適しているコンパイルません。
ラズベリーパイの異なるバージョンは、具体的に確認するために、同じCPUアーキテクチャではないことに注意してください
cat /proc/cpuinfo
Linux上でのクロスコンパイル
あなたは、Linux上のgccクロスコンパイラツールをインストールする必要があります
sudo apt-get install gcc-arm-linux-gnueabihf
その後rustupによって異なるターゲットサポートをインストール
rustup target add arm-unknown-linux-gnueabihf # armv6
rustup target add armv7-unknown-linux-gnueabihf # armv7
Macのクロスコンパイル
開発者は、クロスコンパイラ醸造インストールスクリプトであるためのツールを持っているインストール
brew install FiloSottile/musl-cross/musl-cross --without-x86_64 --with-arm-hf
MUSL Cライブラリ、クロスプラットフォームを使用して、クロスコンパイラツールは、パフォーマンスがglibcの上でほとんどです。
その後rustupによって異なるターゲットサポートをインストール
rustup target add arm-unknown-linux-musleabihf # armv6
rustup target add armv7-unknown-linux-musleabihf # armv7
コンパイル設定
作成するプロジェクトの下で.cargo/config
ファイルを、コンテンツ
[target.arm-unknown-linux-musleabihf]
linker = "arm-linux-musleabihf-ld"
[target.armv7-unknown-linux-musleabihf]
linker = "arm-linux-musleabihf-ld"
[target.arm-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-ld"
[target.armv7-unknown-linux-gnueabihf]
linker = "arm-linux-gnueabihf-ld"
その後、別の開発マシン、ターゲット・マシン・タイプ、貨物の使用でそれらを構築
cargo build --target arm-unknown-linux-gnueabihf --release # armv6, linux
cargo build --target armv7-unknown-linux-gnueabihf --release # armv7, linux
cargo build --target arm-unknown-linux-musleabihf --release # armv6, mac
cargo build --target armv7-unknown-linux-musleabihf --release # armv7, mac
コンパイル後、にtarget/<目标类型>/release
対応する実行可能ファイルで見つけることができ、ターゲットへのコピーが実行することができます。
このファイルには、それによって全体の実行可能ファイルの音量を減少させる、いくつかのシンボルツールストリップを削除するために使用されてもよいです。