Auf WSL 2 funktioniert die vorgeschlagene Lösung nicht. Hier ist eine Lösung zum Ausführen eines in Sublime Text unter Windows bearbeiteten Skripts auf einem WSL 2-Ziel. Erstellen Sie einen bash-wsl.sublime-build
Datei:
{
"shell_cmd": "bash -c \"wslpath '${file}'\" | bash -s",
"shell": true,
}
In WSL2 ist meiner Meinung nach der beste Weg, die folgende sublime-build-Datei zu verwenden.
- Du musst ein neues Build-System im Sublime Text mit dem folgenden Code erstellen.
(Tools -> Build System -> New Build System...
)
{
"shell_cmd": "ubuntu run \"g++ `wslpath '${file}'` && ./a.out<inp.in>out.in \" ",
"shell":true,
"working_dir":"$file_path",
"selector":"$file_name"
}
-
Dieser Code kompiliert den .cpp-Code und verwendet inp.in und out.in als Eingabe- bzw. Ausgabedateien (
Optional, if you don't want that, then replace ./a.out<inp.in>out.in with ./a.out
). Die Ausgabe wird in Sublime's Build Results Panel angezeigt. -
Wenn Sie dieses Build-System verwenden möchten, wählen Sie es in
Tools -> Build System
aus Liste, und drücken Sie dannCtrl + B
.
-
Sie müssen den
C:\Windows\System32\bash.exe
kopieren Datei inC:\Windows\SysWOW64\
Verzeichnis. Erforderlich wegen der WoW64-Dateisystemumleitung (Danke Martin!) -
Dann müssen Sie mit dem folgenden Code ein neues Build-System im Sublime Text erstellen. (
Tools -> Build System -> New Build System...
){ "cmd" : ["bash", "-c", "gcc ${file_name} -o ${file_base_name} && ./${file_base_name}"], "shell": true, "working_dir": "${file_path}", }
Dieser Code kompiliert den .c-Code und führt ihn dann aus. Die Ausgabe wird in Sublime's Build Results Panel angezeigt.
-
Wenn Sie dieses Build-System verwenden möchten, wählen Sie es in
Tools -> Build System
aus Liste, und drücken Sie dannCtrl + B
.
Sie können den Befehl, den ich dort eingefügt habe, anpassen. Hauptsache, Sie können Linux-Befehle mit bash -c "CommandsYouWantToRun"
ausführen