在Windows下使⽤VisualStudioCode搭建C语⾔开发环境
在Windows下使⽤Visual Studio Code搭建C语⾔开发环境
本⽂将教⼤家如何使⽤ 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,安装路径可以⾃由定义,我这⾥安装路径为 D:\App\MinGW 。安装时需要设置的安装选项如下:
Version :GCC 版本,直接选最⾼;
Architecture :CPU 架构,系统如果为64位,则选择 x86_64
Threads :API 模式,使⽤默认选项;
Exception :异常处理⽅式,seh 仅针对 64 位架构,sjlj 则兼容 32 位架构;
Build revision :修订版本,使⽤默认选项;
安装位置通常在C:\MinGW\bin,接下来,我们将刚刚获取的 bin ⽂件夹的路径添加到系统环境变量。
按Win + R键,打开运⾏窗⼝,输⼊sysdm.cpl并回车;
在弹出的 系统属性窗⼝,选择 ⾼级选项卡;
在 ⾼级 选项卡到环境变量按钮,单击环境变量 按钮,打开 环境变量窗⼝ ;
在 环境变量 窗⼝的系统变量区域到 Path变量 ,双击 Path出现 编辑环境变量 窗⼝;
在 编辑环境变量窗⼝点击 新建,在新建的这⾏输⼊我们刚刚获取的 bin ⽂件夹的路径,然后点确定。
3. 测试环境变量是否配置正确
在命令⾏输⼊ gcc –version,如果返回的是已安装的 gcc 的版本信息,那么环境变量就配置正确了。
4. 配置导⼊的⽂件参数c_cpp_properties.json
在编写完毕并保存之后,你可能会看到 #include这句下⾯会有绿⾊波浪线,这是由于编译器没办法到你所使⽤的头⽂件的所在位置。将光标移动到该⾏,⾏号左边会出现 黄⾊⼩灯泡 ,点击会出现⼀个提⽰按钮:Add include path to setting ,继续点击该提⽰,则会在⼯作区
.vscode下⽣成 c_cpp_properties.json ⽂件。将⽂件修改成下⾯内容:
"name":"MinGW",
"intelliSenseMode":"gcc-x64",
"compilerPath":"C:/MinGW/",
"cStandard":"c11",
"cppStandard":"c++17",
"includePath":[
// 下⾯路径中的 D:/App/MinGw 部分需要替换成你的 MinGw-w64 安装路径
"${workspaceFolder}/**",
"C:/MinGW/include",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/tr1"
],
"defines":[
"_DEBUG",
"UNICODE",
"_UNICODE",
"__GNUC__=7",
"__cdecl=__attribute__((__cdecl__))"
],
"browse":{
"path":[
// 下⾯路径中的 C:MinGw 部分需要替换成你的 MinGw-w64 安装路径
"${workspaceFolder}/**",
"C:/MinGW/x86_64-w64-mingw32/include",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++",
"C:/MinGW/lib/gcc/x86_64-w64-mingw32/7.3.0/include/c++/tr1"
],
"limitSymbolsToIncludedHeaders":true,
"databaseFilename":""
}
}],
"version":4
}
5. 配置调试程序launch.json
打开已经编写好的c代码(如 hello.c) ,然后按F5 调试。因为是第⼀次调试,系统会弹出选择环境 ⾯板,这⾥选择C++(GDB/LLDB) 。
选择运⾏环境后,VS Code 会在⼯作区 .vscode ⽂件夹下创建 luanch.json 模板⽂件并打开,将⽂件内容清空,复制下⾯的内容到⽂件中并保存:
"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":"C:/MinGW/"// 调试器的路径,修改为你的安装路径
},
"miDebuggerArgs":"",// 传递给调试器的附加参数
"stopAtEntry":false,// 设置调试器是否停⽌在⽬标的⼊⼝(附加时忽略)。默认值为 false。
"setupCommands":[{// 执⾏下⾯的命令数组以设置 GDB 或 LLDB
"description":"Enable pretty-printing for gdb",
"text":"-enable-pretty-printing",// ⿏标悬停查看变量的值,需要启⽤ pretty-printing 。
"ignoreFailures":true// 忽略失败的命令,默认为 false 。
}]
}]
}
6.配置调试前执⾏的任务task.json
再按⼀次F5,会弹出“不到任务”的提⽰窗⼝,点击配置任务按钮,点击配置任务,然后再弹出的命令⾯板选择使⽤模板创建task.json⽂件,继续选择Others 运⾏任意外部命令的⽰例。将task.json⽂件内容清空,修改为:
{
// 有关 tasks.json 格式的参考⽂档:go.microsoft/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 }
"kind":"build",// { build | test }
"isDefault":true// { true | false }
},
// 定义如何在⽤户界⾯中处理任务输出:
"presentation":{
// 控制是否显⽰运⾏此任务的⾯板。默认值为 "always":
visual studio和vs code的区别// - 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
}
}
}]
}
7.完成
到此可以正常运⾏C程序了,如果你还想再创建其他的 C 语⾔开发⼯作区,我们只需要新建⼀个⽂件夹,再把现在已有⼯作区⽬录下的.vscode ⽂件夹复制到新建的⽂件夹即可。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论