您的位置:首页 > 编程语言 > C语言/C++

Visual Studio Code安装与C/C++开发调试环境搭建

2020-03-19 07:25 711 查看

目录

 

简介

VSCode安装

VSCode语言设置

安装开发套件

构建C/C++编译环境

安装Clang

安装MinGW

VSCode工程配置

launch.json

tasks.json

测试

简介

新工作需要切换到Windows下搬砖,得暂时告别我心爱的Vim了,泪奔三分钟。听说Windows下有个地表最强编辑器Visual Studio Code,盘它!

本文介绍了Windows10环境下安装Visual Studio Code(Version 1.42)并搭建C/C++开发调试环境的所有流程。

VSCode安装

VSCode是一款功能强大的免费编译器,同时支持Windows和Linux平台,操作友好功能全面,且原生支持中文界面,太优秀了。

官网下载:https://code.visualstudio.com/

下载安装即可,注意需要勾选“添加到环境变量”选项。

VSCode语言设置

VSCode的默认语言是英文,我们可以将其更改为中文。

按快捷键Ctrl+Shift+P打开命令窗口,搜索>language

之后我们依次选择“Configure Display Language”->“Install additional languages...”->“Install” 

中文(简体)语言包安装完成后按提示重启即可。

安装开发套件

在应用商店中搜索并依次安装C/C++插件,跟安装语言包的方法一样。

推荐安装并启用以下插件:

【C/C++支持】C/C++

【程序运行环境】Code Runner

【自动补齐】C++ Intellisense

【Clang编译环境】C/C++ Clang Command Adapter

【调试工具】Native Debug

【静态检查工具】C/C++ Advanced Lint

构建C/C++编译环境

VSCode只是一个编辑器,本身并不支持编译运行功能。因此我们需要通过插件来配置编译运行环境,本文选用MinGW-W64+Clang环境。

安装Clang

Clang官网下载:http://releases.llvm.org/download.html

这里按电脑配置选择,我选择Pre-Built Binaries: Windows(64bit)(.sig),最终下载LLVM-9.0.0-win64.exe。

下载完成后安装,安装时选择“Add LLVM to the system PATH for all users”。安装完成后可能会提示“MSVC integration install failed”。这是因为Clang默认使用msvc工具链,但我们采用了MinGW,因此无视即可。装完后Win+R打开cmd,运行clang -v观察到以下结果则安装成功。

安装MinGW

MinGW下载:http://www.mingw-w64.org/doku.php/download/mingw-builds

这里给出的是在线安装方式,如果下载了离线安装压缩包的话,选择合适位置解压,将mingw64/bin加入环境变量PATH即可。

先下载mingw-w64安装工具mingw-w64-install.exe,下载完成后直接运行,需要配置以下五个参数,注意别搞错了:

  • Version:指定版本号,从4.9.1-8.1.0,按需选择,没有特殊需求就用最新版本;
  • Architecture:按操作系统来选,64位系统选择x86_64,32位系统选择i686;
  • Threads:设置线程标准,可选posix或win32;
  • Exception:设置异常处理标准,x86_64可选seh或sjlj,i686则为dwarf或sjlj;
  • Build revision:构建版本号,默认只有一个0,如果有多个选最大的即可。

之后一路next安装,装完后Win+R打开cmd,运行gcc -v观察到以下结果则安装成功。

至此VSCode下C/C++运行环境就搭建好了。

VSCode工程配置

系统合适位置创建工程目录,注意路径全部英文且没有空格(例如C:\Users\Administrator\Desktop\test)。

VSCode打开该目录,并在该目录下新建目录.vscode,将以下launch.json和tasks.json文件拷贝到.vscode目录中。

launch.json

[code]{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe build and debug active file", // 配置名称,会显示在启动配置的下拉菜单中
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 待调试的可执行程序路径
"args": [], // 程序启动时的传参,按需求填即可
"stopAtEntry": true, // 是否在main入口处打断点,一般选true
"cwd": "${workspaceFolder}", // 调试程序时的工作路径
"environment": [], // 环境变量设置
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb", // 指定调试器,可以为gdb或lldb。但windows下没有预编译好的lldb,还是老老实实gdb吧
"miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe", // gdb的调用路径,\\为转义
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": false // 调试时是否忽略失败,当然要false
}
],
"preLaunchTask": "gcc.exe build active file" // 调试开始前要执行的动作,一般为编译文件。此处内容应与tasks.json的taskName一致
}
]
}

tasks.json

[code]{
"version": "2.0.0",
"tasks": [
{
"label": "gcc.exe build active file", // 任务名称,与launch.json的preLaunchTask相对应
"type": "shell",
"command": "gcc", // 如果用MinGW,编译c用gcc,编译c++用g++
"args": [ // 编译参数
"${file}",
"-o", // 指定输出文件名,不加该参数则默认输出a.exe
"${fileDirname}/${fileBasenameNoExtension}.exe", // 注意这里用/标识目录而不是\\
"-g", // 支持gdb调试
"-Og", // -Og 是在gcc 4.8版本引入的,按照源码自动确定优化等级,基本相当于没有优化
"-Wall", // 开启额外的编译警告
"-static-libgcc", // 静态链接
"-fcolor-diagnostics",
"--target=x86_64-w64-mingw", // tasks.json的默认target为msvc,不加这一条就会找不到头文件
"-std=c11" // c++最新标准为c++1z即c++17,C语言最新标准为c11,可根据需要自行修改
],
"group": {
"kind": "build",
"isDefault": true // 设为false则可做到一个tasks.json配置多个编译指令
},
"presentation": {
"echo": true,
"reveal": "always", // 设置是否在“终端”中显示编译信息,可以为always,silent,never。没说的,always。
"focus": false,
"panel": "shared" // 不同的文件的编译信息共享一个终端面板
},
"problemMatcher": { // 编译错误输出配置
"owner": "cpp",
"fileLocation": [
"relative",
"/"
],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", // 正则表达式,用于描述在“问题”栏中显示的信息。
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
]
}

测试

在test目录下创建test.c测试文件。

[code]#include <stdio.h>

int main(int argc, char const *argv[])
{
/* code */
printf("Hello world \n");
return 0;
}

Ctrl+Alt+n运行,或在main()文件源码处鼠标右键选择Run Code运行程序,完结撒花~

  • 点赞
  • 收藏
  • 分享
  • 文章举报
晚睡协会常任理事 发布了16 篇原创文章 · 获赞 0 · 访问量 1034 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: