前言:本文将教大家如何使用 VIsual Studio Code 搭建 C 语言开发环境,包括使用 VS Code 如何编译和调试 C 语言程序,需要 用到的工具有 Visual Studio Code 、MinGw-w64 。

1. 安装 C/C++ 插件

C/C++ 是由 Microsoft 发布的支持 C/C++ 智能提示和调试等功能的插件,安装步骤如下:

使用快捷键Ctrl + Shift + X呼出扩展面板

在搜索框中输入:C/C++

再安装由Microsoft提供的名为C/C++插件

2. 安装 MinGW-w64 并配置好环境变量

首先下载 MinGW-w64点这里下载MinGW-w64 。下载完成之后我们开始安装 MinGw-w64,安装路径可以自由定义,我这里安装路径为D:\App\MinGW。安装时需要设置的安装选项如下:

Version :GCC 版本,直接选最高;

Architecture :CPU 架构,系统如果为64位,则选择 x86_64;

Threads :API 模式,使用默认选项;

Exception :异常处理方式,seh 仅针对 64 位架构,sjlj 则兼容 32 位架构;

Build revision :修订版本,使用默认选项;

安装过程中需要联网下载部分文件,由于网络问题安装失败的,可以点这里下载免安装版本。下载后直接解压在你想安装的文件夹。

然后我们要在安装路径中找到 bin 文件夹,通常在${MinGW-w64安装位置}\mingw64\bin,以我的安装路径为例,bin 文件夹位于D:\App\MinGW\mingw64\bin。

接下来,我们将刚刚获取的 bin 文件夹的路径添加到系统环境变量。

按 Win + R 键,打开运行窗口,,输入 sysdm.cpl 并回车;

在弹出的 系统属性 窗口,选择 高级 选项卡;

在 高级 选项卡找到 环境变量 按钮,单击 环境变量 按钮,打开 环境变量 窗口 ;

在 环境变量 窗口的 系统变量 区域找到 Path 变量 ,双击 Path 出现 编辑环境变量 窗口;

在 编辑环境变量 窗口点击 新建,在新建的这行输入我们刚刚获取的 bin 文件夹的路径,然后点确定。

3. 测试环境变量是否配置正确

在命令行(win +R,输入 cmd 回车打开命令行)输入gcc –version,如果返回的是已安装的 gcc 的版本信息,那么环境变量就配置正确了。

下面是在我的电脑上输入gcc –version的结果,可以看到我安装的版本为:gcc 7.3.0:

C:\Users\NowTime.CC>gcc --version

gcc (GCC) 7.3.0

Copyright (C) 2017 Free Software Foundation, Inc.

This is free software; see the source for copying conditions.  There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

4. 创建和设置 C 语言开发工作区

在你的计算机中选择一个合适的位置,作为你的 C 语言开发工作区。建议工作区所在路径仅由字母、数字、下划线组成,不要包含其他的符号。例如空格,空格符号常常作为命令行中命令和参数的间隔符,如果路径包含空格会导致编译时出错。我创建的工作区的路径为:D:\Study\C\WorkSpace

由于

Windows 中文版命令行输出字符是 GB2312 编码的,而 VS Code 工作区默认是 UTF-8 ,这会导致你编写的 C

代码编译后在命令行执行并查看结果时中文会显示乱码,所以我们要单独针对工作区进行设置字符编码,保证程序输出的字符也采用跟命令行一致的 GB2312

编码,步骤如下:

使用 VS Code 打开你创建的工作区;

在 VS Code 左下角的设置按钮进设置,再点击 用户设置 旁边的 工作区设置 ;

在 工作区设置 中添加 "files.encoding":"gb2312"

5. 编写你的第一个 C 语言程序

在工作区新建一个 C 语言源文件命名为 hello.c ,输入以下内容:

#include <stdio.h>

#include <windows.h>

int main()

{

printf("hello world!/n");

system("pause");

}

6. 配置导入的头文件参数 c_cpp_properties.json

在编写完毕并保存之后,你可能会看到 #include 这句下面会有绿色波浪线,这是由于编译器没办法找到你所使用的头文件的所在位置。将光标移动到该行,行号左边会出现黄色小灯泡,点击会出现一个提示按钮:Add include path to setting,继续点击该提示,则会在工作区.vscode下生成c_cpp_properties.json文件。将文件修改成下面内容:

留意带注释部分的内容,需要将路径修改成你自己的安装路径哦。

{

"configurations": [{

"name": "MinGW",

"intelliSenseMode": "gcc-x64",

"compilerPath": "D:/App/MinGW/mingw64/bin/x86_64-w64-mingw32-gcc.exe",

"cStandard": "c11",

"cppStandard": "c++17",

"includePath": [

// 下面路径中的 D:/App/MinGw 部分需要替换成你的 MinGw-w64 安装路径

"${workspaceFolder}/**",

"D:/App/MinGW/mingw64/x86_64-w64-mingw32/include",

"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",

"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/tr1"

],

"defines": [

"_DEBUG",

"UNICODE",

"_UNICODE",

"__GNUC__=7",

"__cdecl=__attribute__((__cdecl__))"

],

"browse": {

"path": [

// 下面路径中的 D:/App/MinGw 部分需要替换成你的 MinGw-w64 安装路径

"${workspaceFolder}/**",

"D:/App/MinGW/mingw64/x86_64-w64-mingw32/include",

"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",

"D:/App/MinGW/mingw64/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/tr1"

],

"limitSymbolsToIncludedHeaders": true,

"databaseFilename": ""

}

}],

"version": 4

}

7. 配置调试程序 launch.json

打开已经编写好的 hello.c ,然后按F5调试。因为是第一次调试,系统会弹出选择环境面板,这里选择C++(GDB/LLDB)。

选择运行环境后,VS Code 会在工作区.vscode文件夹下创建luanch.json模板文件并打开,将文件内容清空,复制下面的内容到文件中并保存:

留意luanch.json中注释内容,记得把“miDebuggerPath”参数修改成你自己安装位置里的 gdb.exe

gdb.exe位于{MinGW-w64安装位置}\mingw64\bin下面。

{

"version": "0.2.0",

"configurations": [{

// 配置 VS Code 调试行为:

"name": "GDB Debug", // 设置在启动配置下拉菜单中显示调试配置的名称。

"preLaunchTask": "Compile", // 调试会话开始前要运行的任务。

"type": "cppdbg", // 设置要使用的基础调试器。使用 GDB 或 LLDB 时必须是 cppdbg 。

"request": "launch", // 设置启动程序还是附加到已经运行的实例。启动或附加 ( launch | attach ).

"program": "${fileDirname}/${fileBasenameNoExtension}.exe", // 调试器将启动或附加的可执行文件的完整路径。

"externalConsole": true, // 设置是否显示外部控制台。

"logging": { // 用于确定应该将哪些类型的消息记录到调试控制台。

"exceptions": true, // 是否应将异常消息记录到调试控制台。默认为真。

"moduleLoad": false, // 是否应将模块加载事件记录到调试控制台。默认为真。

"programOutput": true, // 是否应将程序输出记录到调试控制台的可选标志。默认为真。

"engineLogging": false, // 是否应将诊断引擎日志记录到调试控制台。默认为假。

"trace": false, // 是否将诊断适配器命令跟踪记录到调试控制台。默认为假。

"traceResponse": false // 是否将诊断适配器命令和响应跟踪记录到调试控制台。默认为假。

},

// 配置目标应用程序:

"args": [], // 设置调试时传递给程序的命令行参数。

"cwd": "${workspaceFolder}", // 设置调试器启动的应用程序的工作目录。

"environment": [], // 设置调试时添加到程序环境中的环境变量,例如: [ { "name": "squid", "value": "clam" } ]。

// 自定义 GDB 或者 LLDB:

"windows": {

"MIMode": "gdb", // 指定 VS Code 连接的调试器,必须为 gdb 或者 lldb。

"miDebuggerPath": "D:/App/MinGW/mingw64/bin/gdb.exe" // 调试器的路径,修改为你的安装路径

},

"miDebuggerArgs": "", // 传递给调试器的附加参数

"stopAtEntry": false, // 设置调试器是否停止在目标的入口(附加时忽略)。默认值为 false。

"setupCommands": [{ // 执行下面的命令数组以设置 GDB 或 LLDB

"description": "Enable pretty-printing for gdb",

"text": "-enable-pretty-printing", // 鼠标悬停查看变量的值,需要启用 pretty-printing 。

"ignoreFailures": true // 忽略失败的命令,默认为 false 。

}]

}]

}

8. 配置调试前执行的任务 task.json

再按一次F5,会弹出“找不到任务”的提示窗口,点击配置任务按钮,如下图所示:

然后在弹出的命令面板选择使用模板创建task.json文件,如下图所示:

继续选择Others 运行任意外部命令的示例,如下图所示:

完成以上步骤之后,会在工作区的.vscode目录下生成tasks.json文件,并自动打开task.json文件。

接下来我们将task.json文件内容清空,复制下面的内容到文件中并保存:

{

// 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。

"version": "2.0.0",

"tasks": [{

"label": "Compile",

"type": "shell", // { shell | process }

// 适用于 Windows 的配置:

"windows": {

"command": "gcc",

"args": [

"-g",

"\"${file}\"",

"-o",

"\"${fileDirname}\\${fileBasenameNoExtension}.exe\""

// 设置编译后的可执行文件的字符集为 GB2312:

// "-fexec-charset", "GB2312"

// 直接设置命令行字符集为 utf-8:

// chcp 65001

]

},

// 定义此任务属于的执行组:

"group": {

"kind": "build", // { build | test }

"isDefault": true // { true | false }

},

// 定义如何在用户界面中处理任务输出:

"presentation": {

// 控制是否显示运行此任务的面板。默认值为 "always":

// - always:    总是在此任务执行时显示终端。

// - never:    不要在此任务执行时显示终端。

// - silent:    仅在任务没有关联问题匹配程序且在执行时发生错误时显示终端

"reveal": "silent",

// 控制面板是否获取焦点。默认值为 "false":

"focus": false,

// 控制是否将执行的命令显示到面板中。默认值为“true”:

"echo": false,

// 控制是否在任务间共享面板。同一个任务使用相同面板还是每次运行时新创建一个面板:

// - shared:    终端被共享,其他任务运行的输出被添加到同一个终端。

// - dedicated:  执行同一个任务,则使用同一个终端,执行不同任务,则使用不同终端。

// - new:        任务的每次执行都使用一个新的终端。

"panel": "dedicated"

},

// 使用问题匹配器处理任务输出:

"problemMatcher": {

// 代码内问题的所有者为 cpp 语言服务。

"owner": "cpp",

// 定义应如何解释问题面板中报告的文件名

"fileLocation": [

"relative",

"${workspaceFolder}"

],

// 在输出中匹配问题的实际模式。

"pattern": {

// The regular expression.

"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",

// 第一个匹配组匹配文件的相对文件名:

"file": 1,

// 第二个匹配组匹配问题出现的行:

"line": 2,

// 第三个匹配组匹配问题出现的列:

"column": 3,

// 第四个匹配组匹配问题的严重性,如果忽略,所有问题都被捕获为错误:

"severity": 4,

// 第五个匹配组匹配消息:

"message": 5

}

}

}]

}

9. 完成,enjoy it!

到这里,C 开发环境就已经配置完毕。接下来我们在hello.c的编辑窗口按F5运行下,看下效果。

如果你还想再创建其他的 C 语言开发工作区,我们只需要新建一个文件夹,再把现在已有工作区目录下的 .vscode 文件夹复制到新建的文件夹即可。

点击了解更多资料,更有免费开源项目和课程等你观看哦!

干货分享:在Windows下使用Visual Studio搭建C语言开发环境相关推荐

  1. Windows下Eclipse和PyDev搭建完美Python开发环境

    Windows下Eclipse和PyDev搭建完美Python开发环境 之前安装Eclipse,JDK,Python什么的就不说了.直接从安装PyDev开始(借用了几张别人的图): 打开Eclipse ...

  2. 【Windows系统】基于vscode搭建go语言开发环境

    微信公众号:CurryCoder的程序人生 怕什么真理无穷,进一寸有一寸的欢喜 1.golang安装包下载与安装 关于vscode的下载,请参见历史文章Ubuntu16.04下搭建vscode的C++ ...

  3. Windows10下利用Visual Studio Code搭建C语言开发环境

    Windows10下利用Visual Studio Code搭建C语言开发环境 1. 前言 2. 下载安装VSCode以及MinGW 2.1 下载安装VSCode 2.2 下载安装MinGW-w64 ...

  4. 在Visual Studio Code配置GoLang开发环境

    在Visual Studio Code配置GoLang开发环境 作者:chszs,未经博主允许不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs Visu ...

  5. Visual Studio Code 配置 Java开发环境

    第一步:下载vscode 官网:Visual Studio Code - Code Editing. Redefined 第二步:下载Java     官网:Java Downloads | Orac ...

  6. 配置Visual Studio Code的SciLab开发环境

    配置Visual Studio Code的SciLab开发环境 引言 整体思路 插件安装 设置环境变量 设置setting.json 引言 由于美国将一批中国高校列入了实体清单制裁,近日Mathwor ...

  7. Visual Studio创建C语言编程环境

    Visual Studio创建C语言编程环境 1.启动 visual studio 2.创建新项目 3.配置新项目 4.创建源文件 5.添加新项 1.启动 visual studio 将 visual ...

  8. 使用Android Studio搭建Android集成开发环境

    一.Android Studio简单介绍 2013年GoogleI/O大会首次发布了Android Studio IDE(Android平台集成开发环境).它基于Intellij IDEA开发环境,旨 ...

  9. Eclipse下搭建C语言开发环境

    Eclipse下搭建C语言开发环境 要使用Eclipse开发C/C++语言主要有 下面几个步骤: 1. 安装 JRE 去sun官方网站 下载安装即可 由于 Eclipse 本身是用 Java 开发的, ...

最新文章

  1. 玩爬虫不会登陆?这个工具拿走不谢!
  2. bash: 无法为立即文档创建临时文件: 权限不够_世界顶级Linux大牛耗时三年总结出3000页Linux文档...
  3. 如何有效提升网站转化率?从四个方面着手分析!
  4. 【Linux】Ubuntu安装命令
  5. 学习进度表(160519更新)
  6. 十二款常用摄影软件,大部分人只用过十种!
  7. TeamViewer在windows2003上如何免费使用
  8. Excel函数公式大全—MATCH函数
  9. 删除文件时提示:无法读源文件或磁盘之解决办法
  10. 基于深度学习目标检测的人工智能玩游戏
  11. 6319. 【省选组】【USACO 2019 February Platinum】Problem 3. Mowing Mischief
  12. 前端UI框架ligerui表格汇总功能无法计算全部数据的合计的解决方法
  13. Linux日志切割工具logrotate原理和配置详解
  14. 驯服最难以捉摸的野兽──创新
  15. 跟着小马哥学系列之 Spring AOP(Pointcut 组件详解)
  16. Failed to ignore SIGHUP: No error
  17. 在个人电脑安装MySQL数据库,你还不会安装吧?
  18. ddwin32diskimager软碟通Ultraiso 简单分析区别和长处
  19. 程序设计基础python答案_Python程序设计基础免费答案
  20. “黑客情报官”薛锋:真相只有一个,我们必须找到它

热门文章

  1. 因子模型:协方差矩阵
  2. Python实战:利用Tkinter实现屏保程序
  3. CruiseControl.NET/CCNET安装包下载
  4. hdu 4466 Triangle (数学)
  5. C语言经典红白机坦克大战
  6. Visual Studio 2019 中使用 DotNetBar
  7. python和c++学哪个好
  8. 如何下载因特尔显卡的最新驱动
  9. 直播回顾 | 论道原生:云原生大数据建设实践
  10. scratch3的作品打包成exe(自带chrome浏览器方案)