さび、クロスコンパイララズベリーパイプログラム

さび、クロスコンパイララズベリーパイプログラム

錆書き込みラズベリーパイプログラムを使用する場合は、直接コンパイルした場合には、より遅いゼロに立つことができないであれば、非常にゆっくりと、ラズベリーに来ます。それが最良のコンパイル後にマシンによって開発されたので、ラズベリーの操作に直接来ます。

開発マシンは、通常、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対応する実行可能ファイルで見つけることができ、ターゲットへのコピーが実行することができます。

このファイルには、それによって全体の実行可能ファイルの音量を減少させる、いくつかのシンボルツールストリップを削除するために使用されてもよいです。

おすすめ

転載: www.cnblogs.com/fengyc/p/12198178.html