El ejecutable de Windows no puede encontrar el archivo en la ruta WSL.

El ejecutable de Windows no puede encontrar el archivo en la ruta WSL.

Estoy ejecutando WSL1. Creé un archivo en mi directorio de inicio, es decir home/username. Tengo un archivo .exe llamado armcc.exe en mi directorio C:\. Puedo ejecutar algo como esto desde el shell de Linux:

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

Sin embargo, si creo un archivo en /home/username, el ejecutable no puede acceder al archivo, es decir, este comando falla:

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

Recibo un error "no source": Error: #5: cannot open source input filedel ejecutable del compilador.

Parece que el sistema de archivos de Windows no puede acceder al lado de Linux. ¿Cómo puedo lograr esto, en todo caso?

Respuesta1

Los programas normales de Windows utilizan el subsistema Win32 y, como resultado, no manejan rutas de Unix, sólo rutas de Windows. Cuando utiliza una ruta a un sistema de archivos de Windows, se traduce a una ruta de Windows.

Hay formas de especificar rutas de archivos en WSL,usando el \\wsl$prefijo. Probablemente necesitará utilizar dicha ruta para un programa de Windows que utilice esta sintaxis de Windows. Sin embargo, no todos los programas de Windows manejan correctamente esta sintaxis de ruta y algunos prefieren una ruta estándar con una letra de unidad, por lo que es posible que no sea posible utilizar esta sintaxis con todos los programas.

información relacionada