исполняемый файл windows не может найти файл по пути wsl

исполняемый файл windows не может найти файл по пути wsl

Я запускаю WSL1. Я создал файл в своем домашнем каталоге, т.е. home/usernameУ меня есть .exe-файл с именем armcc.exe в моем каталоге C:\. Я могу запустить что-то вроде этого из оболочки 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 изящно обрабатывают этот синтаксис пути, а некоторые очень хотят стандартный путь с буквой диска, поэтому может оказаться невозможным использовать этот синтаксис со всеми программами.

Связанный контент