从Sublime Text使用Windows子系统for Linux(WSL)

oaxa6hgo  于 2022-12-11  发布在  Linux
关注(0)|答案(3)|浏览(190)

我想使用Sublime Text的gccg++make来编译C和C++代码到Windows上的Linux可运行程序。我不能像许多其他用户一样在Stack Overflow上运行Sublime Text的bash.exe

flvtvl50

flvtvl501#

1.您必须将C:\Windows\System32\bash.exe文件复制到C:\Windows\SysWOW64\目录。由于WoW64 file system redirection,因此需要此文件(谢谢Martin!)
1.然后你必须用下面的代码在Sublime Text中创建一个新的构建系统。(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}",
}

这段代码将编译.c代码,然后运行它。输出将显示在Sublime的构建结果面板中。
1.当您要使用此构建系统时,请在Tools -> Build System列表中选择它,然后单击Ctrl + B
您可以自定义我放在那里的命令,主要是您可以使用bash -c "CommandsYouWantToRun"运行Linux命令

9lowa7mx

9lowa7mx2#

在WSL 2中,我认为最好的方法是使用下面的sublime-build文件。

  • 您必须使用以下代码在Sublime Text中创建一个新的构建系统。

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"
    }
  • 此代码将编译.cpp代码,并分别使用inp.in和out.in作为输入和输出文件(Optional, if you don't want that, then replace ./a.out<inp.in>out.in with ./a.out)。输出将显示在Sublime的“构建结果”面板中。
  • 当您要使用此构建系统时,请在Tools -> Build System列表中选择它,然后单击Ctrl + B
c6ubokkw

c6ubokkw3#

在WSL 2上,建议的解决方案不起作用。以下是在WSL 2目标上执行在Windows上的Sublime Text中编辑的脚本的解决方案。创建一个bash-wsl.sublime-build文件:

{
    "shell_cmd": "bash -c \"wslpath '${file}'\" | bash -s",
    "shell": true,
}

相关问题