RustアプリケーションをLinuxからWindowsにクロスコンパイルする
2023-11-03 14:43:15
質問
基本的に私はLinuxで開発しながら、最も簡単なコードをWindowsにコンパイルしようとしています。
fn main() {
println!("Hello, and bye.")
}
これらのコマンドは、インターネットで検索して見つけました。
rustc --target=i686-w64-mingw32-gcc main.rs
rustc --target=i686_pc_windows_gnu -C linker=i686-w64-mingw32-gcc main.rs
悲しいかな、どれもうまくいきません。std crateが見つからないというエラーが出ます。
$ rustc --target=i686_pc_windows_gnu -C linker=i686-w64-mingw32-gcc main.rs
main.rs:1:1: 1:1 error: can't find crate for `std`
main.rs:1 fn main() {
^
error: aborting due to previous error
Windowsで動作するコードをLinuxでコンパイルする方法はありますか?
どのように解決するのですか?
他の回答は、技術的には正しいのですが、必要以上に難しいです。また
rustc
を使う必要はありません (むしろ推奨されません。単に
cargo
を使うだけです)、必要なのは
rustup
,
cargo
と、あなたのディストリビューションのmingw-w64を指定します。
ターゲットを追加します(クロスコンパイルするターゲットに変更することも可能です)。
rustup target add x86_64-pc-windows-gnu
rustup toolchain install stable-x86_64-pc-windows-gnu
で簡単にクレートを構築することができます。
cargo build --target x86_64-pc-windows-gnu
でごちゃごちゃやる必要はありません。
~/.cargo/config
などといじる必要はありません。
EDIT: ただ、上記を使うことができる一方で、時には頭痛の種になることもあることを付け加えたいと思います。また、Rust Tools チームは cross というプロジェクトを管理していることも付け加えておきます。 https://github.com/rust-embedded/cross これは、あなたが調べたいもう一つの解決策かもしれません。
関連
-
Linuxのデスクトップの背景を画像で引き伸ばし表示にする方法とは?
-
Centos7のインストールと展開無料のconfluence wikiの(知識ベース)詳細な操作手順
-
deepin20ターミナルでサーバーをリモート管理する方法
-
Linux Mintシステムでプログラムをアンインストールするには? Linux で不要なアプリケーションをアンインストールするためのヒント
-
Linux MintのデスクトップでNoteをイタリックにすることは可能ですか?
-
Linux Mintでフェード効果をオンにする方法は?
-
deepin depth systemはどのような内容でアップデートされましたか?deepinの最新版アップデート内容まとめ
-
GCCのバージョンによる浮動小数点演算の例外発生
-
[解決済み] Windowsのコマンドラインからアプリケーションの終了コードを取得するにはどうすればよいですか?
-
[解決済み] Qt を Linux から Windows にクロスコンパイルするにはどのように設定すればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
virtualboxが仮想マシンを開けない場合は?linuxがvirtualboxにアクセスできない時の解決策
-
ディープインシステムの画面解像度を設定する方法は?ディープインシステムの解像度を設定する方法
-
deepin20のデスクトップアイコンのスタイルを変更する方法は?deepinのアイコンテーマを変更するためのヒント
-
TclError: 表示名がなく、$DISPLAY環境変数もない。
-
GCCのバージョンによる浮動小数点演算の例外発生
-
makeの低レベルエラー:セパレータストップがない
-
Apache の一般的な設定エラー
-
[解決済み] libstdc++.so.5: 共有オブジェクトファイルを開くことができない - しかしライブラリはインストールされており最新である
-
[解決済み] Bashでファイルの中身をループする
-
[解決済み] ターミナルで現在の日付と時刻を取得し、それに対してターミナルでカスタムコマンドを設定するにはどうすればよいですか?[クローズド]です。