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