私はWindows 10を使用しています。armv7-unknown-linux-gnueabihf
で実行するRustプログラムをクロスコンパイルしたいと思います。 (armv7-unknown-linux-muscl
も許容可能であるが、利用可能ではないようです。)ここでRustをWindowsからARM Linuxにクロスコンパイル
は私の手順は次のとおりです。
- は
rustup
rustup toolchain install stable-x86_64-pc-windows-gnu
rustup toolchain default stable-x86_64-pc-windows-gnu
rustup target add armv7-unknown-linux-gnueabihf
をインストールします。私の
./cargo/config
ファイルを編集して:[build] target = "armv7-unknown-linux-gnueabihf"
cargo build
これは罰金のすべてをコンパイルするが、それはそれをリンクすることになると、このエラーを与える:
error: could not exec the linker `cc`: The system cannot find the file specified. (os error 2)
私の知る限りが決定することができたとして、これはRustは独自のリンカーを持たず、代わりにGCCを使用するためです。どうやら私はこの自分自身を提供し、./cargo/config
ファイルにこれを追加する必要があります。
[target.armv7-unknown-linux-gnueabihf]
linker = "c:/path/to/my/gcc/cross/compiler"
それは右か?もしそうであれば、地球上でどこの場所でこのようなクロスコンパイラをダウンロードすればいいのですか?それではrustup
をインストールしないのですか? GCCのクロスコンパイル版を自分でコンパイルしなければならないのは、C/C++プログラムのクロスコンパイルの最大の苦痛です。 Rustupはこれをもっと簡単にしませんか? Notlikethatさんのコメント@に
'' arm cross compiler windows ''のインターネット検索を実行すると、あらかじめビルドされたコンパイラをダウンロードしてリンカとして使用できる有望な方法があるようです。あなたはここに何を質問しようとしていますか?それが腐敗のための機能要求の場合、おそらくレポに1つを作る?セミ関連の側面についてのチャットがあります(https://github.com/rust-lang-nursery/rustup.rs/issues/486)。 – Shepmaster
結果のほとんどはバイナリ形式(here)(https://launchpad.net/gcc-armembedded)で簡単に入手できる埋め込みベアメタルARM GCC用です。それは 'arm-none-eabi-gcc'(または何か;これらのターゲットのトリプルは非常に恣意的です)です。 – Timmmm
一般的にパッケージ化されたクロスツールチェーンの場合、私は[Linaro toolchain binaries](http://www.linaro.org/downloads/)に行きます。もしそれが明確でない場合は、i686_mingw32が必要です。 – Notlikethat