You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code中借助WSL/Bash运行任务?

在VS Code中通过WSL的GCC编译运行C代码

我懂你想在VS Code里实现像Sublime3那样,直接调用WSL里的GCC编译运行C代码的需求——毕竟WSL搞开发工具、配置环境都方便,出问题重建成本也低。下面直接给你能跑通的tasks.json配置,还有细节解释:

完整的tasks.json配置

先在VS Code里按Ctrl+Shift+B(或者通过菜单栏「终端→配置任务」)打开任务配置,选择「创建tasks.json文件」,然后把默认内容替换成下面的代码:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "WSL GCC 编译运行",
            "type": "shell",
            "command": "bash.exe",
            "args": [
                "-c",
                "gcc $(wslpath \"${file}\") -o \"${file_base_name}\" && ./\"${file_base_name}\""
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": ["$gcc"],
            "detail": "调用WSL中的GCC编译当前C文件并运行"
        }
    ]
}

关键配置说明

  • 核心命令逻辑:通过bash.exe让Windows的PowerShell调用WSL环境,用wslpath "${file}"把VS Code提供的Windows格式路径转换成WSL能识别的/mnt/开头路径,再传给GCC编译。编译完成后直接运行生成的可执行文件。
  • VS Code预定义变量:${file}代表当前打开文件的完整Windows路径,${file_base_name}是不带后缀的文件名,这样编译出的可执行文件和源文件同名,方便管理。
  • 体验优化:problemMatcher会让编译时的错误、警告直接显示在VS Code的「问题」面板里,方便快速定位;把这个任务设为默认构建任务后,按Ctrl+Shift+B就能一键触发编译运行。

关于你之前的脚本尝试

你用脚本的思路其实没问题,只是参数传递的引号嵌套出错了。如果还是想用脚本,把tasks.json里的args改成这样:

"args": ["-c", "myscript.sh \"${file}\""]

同时要在WSL里给脚本加可执行权限(运行chmod +x myscript.sh),脚本里的wslpath调用也要记得给参数加引号,避免带空格的路径出问题。不过直接用上面的tasks.json配置更简洁,不用额外维护脚本。

内容的提问来源于stack exchange,提问作者Evan Rosica

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:12:31