Windows 可执行文件无法找到 wsl 路径下的文件

Windows 可执行文件无法找到 wsl 路径下的文件

我正在运行 WSL1。我在主目录中创建了一个文件,即home/username。我的 C:\ 目录中有一个名为 armcc.exe 的 .exe 文件。我可以从 Linux shell 运行类似这样的程序:

/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 程序都能很好地处理此路径语法,有些程序非常希望使用带有驱动器号的标准路径,因此可能无法在所有程序中使用此语法。

相关内容