Windows 実行可能ファイルは WSL パスの下でファイルを見つけることができません

Windows 実行可能ファイルは WSL パスの下でファイルを見つけることができません

私は WSL1 を実行しています。ホーム ディレクトリにファイルを作成しましたhome/username。C:\ ディレクトリに armcc.exe という .exe ファイルがあります。Linux シェルから次のようなものを実行できます。

/mnt/c/armcc.exe /mnt/c/test/foo.c

ただし、 の下にファイルを作成すると/home/username、実行可能ファイルはファイルにアクセスできず、つまりこのコマンドは失敗します。

/mnt/c/armcc.exe /home/username/foo.c

"no source": Error: #5: cannot open source input fileコンパイラの実行可能ファイルからエラーが発生します。

Windows ファイルシステムは Linux 側にアクセスできないようです。これを実現するにはどうすればよいでしょうか?

答え1

通常の Windows プログラムは Win32 サブシステムを使用するため、Unix パスは処理せず、Windows パスのみを処理します。Windows ファイル システムへのパスを使用すると、Windows パスに変換されます。

WSLでファイルパスを指定する方法はいくつかあります。\\wsl$接頭辞を使用する. この Windows 構文を使用する Windows プログラムでは、このようなパスを使用する必要がある可能性があります。ただし、すべての Windows プログラムがこのパス構文を適切に処理できるわけではなく、ドライブ文字を含む標準パスを必要とするプログラムもあるため、すべてのプログラムでこの構文を使用できるとは限りません。

関連情報