Ich verwende WSL1. Ich habe eine Datei in meinem Home-Verzeichnis erstellt, d. h home/username
. Ich habe eine .exe-Datei namens armcc.exe in meinem Verzeichnis C:\. Ich kann so etwas von der Linux-Shell aus ausführen:
/mnt/c/armcc.exe /mnt/c/test/foo.c
Wenn ich jedoch eine Datei unter erstelle /home/username
, kann die ausführbare Datei nicht auf die Datei zugreifen, d. h. dieser Befehl schlägt fehl:
/mnt/c/armcc.exe /home/username/foo.c
Ich erhalte einen Fehler "no source": Error: #5: cannot open source input file
von der ausführbaren Datei des Compilers.
Es scheint, als könne das Windows-Dateisystem nicht auf die Linux-Seite zugreifen. Wie kann ich das erreichen, wenn überhaupt?
Antwort1
Normale Windows-Programme verwenden das Win32-Subsystem und verarbeiten daher keine Unix-Pfade, sondern nur Windows-Pfade. Wenn Sie einen Pfad zu einem Windows-Dateisystem verwenden, wird dieser in einen Windows-Pfad übersetzt.
Es gibt Möglichkeiten, Dateipfade unter WSL anzugeben,mit dem \\wsl$
Präfix. Sie werden einen solchen Pfad wahrscheinlich für ein Windows-Programm mit dieser Windows-Syntax verwenden müssen. Allerdings können nicht alle Windows-Programme diese Pfadsyntax problemlos verarbeiten, und manche Programme benötigen unbedingt einen Standardpfad mit einem Laufwerksbuchstaben. Daher ist es möglicherweise nicht möglich, diese Syntax mit allen Programmen zu verwenden.