私は 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 プログラムがこのパス構文を適切に処理できるわけではなく、ドライブ文字を含む標準パスを必要とするプログラムもあるため、すべてのプログラムでこの構文を使用できるとは限りません。