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 Systemaus Liste, und drücken Sie dannCtrl + B.
-
Sie müssen den
C:\Windows\System32\bash.exekopieren 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 Systemaus 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