· 

Rustでクロスコンパイル

WSLでRustやるのはいいけど、Windowsで動くソフトも作りたい。

crossってのを入れるのが正攻法らしいけど、Dockerという謎の環境が必要になる。拙者そっち系の人じゃないのでDockerとか入れたくない(実はうまくいかなかっただけ)。

ところで、今回はクロスコンパイルなのでよりクロスコンパイル感を上げるため、一旦、VirtualBox内のDebianでやってみます。

これやるのにRustだけでなくmingwも必要になるのでインストールしておく。

参考サイトはこちら。まぁいつもと同じでひとさまのたどった道をたどるだけ。

こんな感じでaes128が動くってところまで来ているとして、

プロジェクトのフォルダ内に.cargoってフォルダを作って、configってファイルを作る。中身は

[target.x86_64-pc-windows-gnu]
linker = "x86_64-w64-mingw32-gcc"

で、Rustのターゲットをインストールする。

で、ターゲットを指定してビルドする。

こんな感じで実行ファイルができている。

これをWindowsで実行してみたいと思ふ。

こんな感じで、Windowsで動いたぜー。めでたし。

が、ファイルサイズでかくね?GUIのない実行ファイルなのに5MBって、、、

今回VirtualBoxのDebianでやったけど、WSLでも同じはず。同じはずなのでやらん。

さて、ちょっと更新をさぼっていたように見えるだろうが、実はDockerのroot問題を解決できなくてぐちゃぐちゃになってたんよねー。Windowsを汚したくないのでWSL内で完結させたくて四苦八苦。さらにWSLイメージは外付けSSDに入れてたんだけど、調子悪くなって作業中にドライブが見失われたりで、まさに苦難の行軍。で、結局諦めて別の方法でやったってわけだよ。