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 file
del 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.