Sunday, April 16, 2023

wsl2上のUbuntuで、Visual C++で作った.exe拡張子の実行ファイルがそのまま使えた件

個人的にかなりの衝撃的な事項だったのでメモ。

最近ひょんなことから、バックエンドで遊んでて、Kaliで開発していたのだが、総合的な管理のしやすさからWindowsに切り替えた。そうなるとサーバーをどこに建てるかって悩むところだが、今はwsl2が快適という噂を聞いたので、その上でサーバーを走らせることにした。wslは標準仕様で、Ubuntuを入れた。

下地のマシンが強いので、サーバー開発は快適に進んだ。そんな中、どうしてもVisual C++で過去に作ったプログラムを走らせたくなってきた。

Linuxネイティブなら、Linux用にクロスコンパイルしなきゃならない。ただ今回はwsl2上での開発だ。wsl2の下にはWindowsが走ってる。だからそのまま動くかもしれないと思い、exeを実行してみた。すると、そのまま動いた。

Windows側のシステム環境変数を参照しているわけではないのか、dllの場所は、別に参照させる必要はあったが、/mnt/cがcドライブに相当するので、そこから潜っていって、exeファイルをコマンドラインで打ち込むと、そのまま走る。dllもLinux用に書き換えることもない。出力ファイルもWindowsと同じ。

wslでいろんなことができそう。

No comments: