Su WSL 2 la soluzione suggerita non funziona. Ecco una soluzione per eseguire su un target WSL 2 uno script modificato in Sublime Text su Windows. Crea un bash-wsl.sublime-build
file:
{
"shell_cmd": "bash -c \"wslpath '${file}'\" | bash -s",
"shell": true,
}
In WSL2, il miglior modo possibile secondo me è utilizzare il file sublime-build sottostante.
- Devi creare un nuovo sistema di compilazione nel Sublime Text con il seguente codice.
(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"
}
-
Questo codice compilerà il codice .cpp e utilizzerà rispettivamente inp.in e out.in come file di input e output (
Optional, if you don't want that, then replace ./a.out<inp.in>out.in with ./a.out
). L'output verrà mostrato nel pannello Risultati build di Sublime. -
Quando vuoi usare questo sistema di compilazione, selezionalo in
Tools -> Build System
list, quindi premiCtrl + B
.
-
Devi copiare il
C:\Windows\System32\bash.exe
file alC:\Windows\SysWOW64\
directory.Richiesto a causa del reindirizzamento del file system di WoW64 (grazie Martin!) -
Quindi devi creare un nuovo sistema di compilazione nel Sublime Text con il seguente codice. (
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}", }
Questo codice compilerà il codice .c e poi lo eseguirà. L'output verrà mostrato nel pannello Risultati build di Sublime.
-
Quando vuoi usare questo sistema di compilazione, selezionalo in
Tools -> Build System
list, quindi premiCtrl + B
.
Puoi personalizzare il comando che ho inserito, la cosa principale è che puoi eseguire comandi Linux usando bash -c "CommandsYouWantToRun"