在Windows 10 中用 Bash on Windows(WSL) 给 VSCode 搭建 编译调试 C/C++ 环境 (本文已过时)

Windows 10 Creator Update 下的VSCode 支持 WSL *了!( 2019 本文已过时 )


2019年时, 根据微软发布的 WSL2 和 VSCode 最新版以及 VSCode 的 WSL 插件, 此方法不够最新的微软官方提供的插件来得直接简单( 但或许还有某些参考价值故保留 ).过阵子我会记录一篇 1903 版本 Windows 10 的可用教程
在Windows 10 中用 Bash on Windows(WSL) 给 VSCode 搭建 编译调试 C/C++ 环境 (本文已过时)_第1张图片

*本文参考链接(基础2):GitHub
*WSL是 Windows 10 下 的一项功能,全称Window Subsystem for Linux


你要提前准备的内容(粗体重要

  • Windows 10 带有 Creator Update(即创意者更新)
  • WSL(Windows Subsystem for Linux)(即 Bash on Windows)
  • VSCode 带有 C/C++ 工具扩展(ms-vscode.cpptools)
  • 阅读 一般的 VSCode 搭载 C/C++ 编程环境的教程(*nix或Win)(基础1)
  • 阅读 本文参考链接并复制+粘贴(+修改)好 launch.json 文件
    *步骤5依赖于步骤4

一. launch.json 的修改

原内容

"program":/mnt/z/Bash/kitchensink/a.out",

修改

"program": 【要生成可执行文件目录在bash中的目录】/${fileBasenameNoExtension}.out",

解释:${fileBasenameNoExtension} 是说明让VSCode获取当前文件不带扩展名的文件名,另外"sourceFileMap” 和 “cwd” 的目录内容也请 按实况修改


二. 写一个 gcc.bat

方法是在你的可执行文件目录里面新建一个新建文本文档.txt改为gcc.bat,右键编辑

bash -c "gcc -g 【源代码目录在bash中的目录】%1 -o 【要生成可执行文件目录在bash中的目录】%2"

解释:这是为了在VSCode里面通过cmd调用bash调用gcc,目前我只想到这个办法。%1指下面task.json给bat输入的参数(源代码和输出文件),其实可以不在bat中写目录,可以让task.json传参数,可以自行修改。


三.改task.json

关于task.json是什么,怎么创建,可以在你要提前准备的内容步骤4中看到。

//这是task.json的全部内容
{
"version": "0.1.0",
"tasks": [
	{
	"taskName": "gcc", 
	"command":"【gcc.bat在win下的位置,这里用/或\\】/gcc.bat",
	"args": [
		"${fileBasenameNoExtension}.c",
		"${fileBasenameNoExtension}.out"
		],
    "problemMatcher": {
        "owner": "cpp",
        "fileLocation": ["relative", "${workspaceRoot}"],
        "pattern": {
            "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
            "file": 1,
            "line": 2,
            "column": 3,
            "severity": 4,
            "message": 5
            }
          }
       }
	]
}

至此 VSCode 的连接 Bash 工作完成!##

可以调试了!

在Windows 10 中用 Bash on Windows(WSL) 给 VSCode 搭建 编译调试 C/C++ 环境 (本文已过时)_第2张图片


问题

通过这个生成的可执行文件名是什么?

  • [ 源文件去掉.c然后加上.out(如hello.out)]

[要生成可执行文件目录在bash中的目录]是什么?

  • [看你想把xx.out放哪里,一般和源文件放一起就行了(如/mnt/z/Bash/kitchensink)注意c盘要写/mnt/c,而且要区分大小写!!!]

[源代码目录在bash中的目录】是什么?

  • [你的xx.c文件的所在之处,比如我有一个helloworld程序在c:\Hello文件夹里面,要写为/mnt/c/Hello]

[gcc.bat在win下的位置,这里用/或\】是什么?

  • [建议和可执行文件放一起或者另外找一个特定目录防止误删]

你可能感兴趣的:(开发环境)