文章目录
- VScode安装及C语言环境配置
- 1.安装VScode
- 2.安装编译环境mingw-w64
- 3.汉化
- 4.安装C/C++ 和Code Runner扩展
- 5.对于乱码问题
VScode安装及C语言环境配置
1.安装VScode
下载地址:https://code.visualstudio.com/
2.安装编译环境mingw-w64
然后点击.exe程序,安装
这里介绍一下几个选项,然后大家看自己情况选择:
- 选择 gcc 版本
说明:Version 指的是 gcc 的版本,如果没有特殊的需求,一般选择最高的版本号即可。
操作:在这个版本中,最高版本是 6.2.0 ,选中它即可。 - 选择电脑系统架构
说明:Architecture 是指电脑系统是 32位 还是 64位,根据你的电脑系统做出对应选择。
操作:我的电脑系统是 64位 的,所以我选择了 x86_64,如果你是 32位 系统,则选择 i686 即可。 - 选择操作系统接口协议
说明:这个世界上只有两种操作系统,符合 posix 协议的,和 Windows 。如这个笑话所说的,如果你想要开发 Windows 程序,需要选择 win32 ,而开发 Linux、Unix、Mac OS 等其他操作系统下的程序,则需要选择 posix 。
操作:我只开发在 Windows 下运行的程序,所以选择了 win32 。 - 选择异常处理模型(64位)
说明:异常处理在开发中非常重要,你在开发的过程中,大部分的时间会耗在处理各种异常情况上。如果你之前选择了 64位,则这里有两个异常处理模型供你选择,seh 是新发明的,而 sjlj 则是古老的。seh 性能比较好,但不支持 32位。 sjlj 稳定性好,支持 32位。
操作:我这里选择了 seh 。
接着下一步,选择自己安装目录即可
接下来配置环境变量,以WIN10为例子,此电脑-属性-高级系统设置-环境变量
然后选择系统变量的的Path,点击编辑,然后选择新建
讲MinGW-w64的可执行程序安装目录bin,添加到环境变量Path中,右键点击bin,然后选择将地址复制成文本
然后点击新建变量,ctrl+v粘贴即可
最后,按下win+R ,调出命令行窗口
输入gcc -v 查看信息,出现如下界面即安装成功
3.汉化
打开VScode ,点击右边侧栏的插件
然后输入框搜索Chinese Language ,点击安装,然后点击右下角的Restart Now,重启即可
为防止中文乱码情况,右键单击左下角齿轮,选择设置,搜索Files.autoGuessEncoding,然后勾选即可
4.安装C/C++ 和Code Runner扩展
同样在扩展商店搜索C,然后选择这个进行安装
然后安装 code runner
5.配置
创建一个存放代码的文件夹,然后菜单栏选择文件->打开文件夹,选择先前创好的文件
然后点击新建一个.c文件
按F5调试,选择第一个C++(GDB/LLDB)
然后会自动生成一个launch.json的启动配置文件:,我们要对其做一些修改
launch.json修改后配置如下,只要把下面的minDebuggerPath改为自己的路径即可
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceFolder}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceFolder}",// 调试程序时的工作目录,一般为${workspaceFolder}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"preLaunchTask": "gcc", //增加的,调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"miDebuggerPath": "D:\\variables\\mingw-w64\\mingw64\\bin\\gdb", //改为你自己安装的mingw的路路径
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
然后回到代码界面,按F5,会出现以下提示,我们选择配置任务,然后选择创建tasks.json模板文件
选择Others 运行任意外部命令
然后会出现tasks.json,这里对一些配置需要修改
配置如下:
{
// 有关 tasks.json 格式的参考文档:https://go.microsoft.com/fwlink/?LinkId=733558 。
"version": "2.0.0",
"tasks": [{
"label": "gcc",
"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
}
}
}]
}
接着重启,然后运行,会报错误,然后会提醒你跳转到该文件c_cpp_properties.json进行配置
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"D:/variables/mingw-w64/mingw64/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/tr1",
"D:/variables/mingw-w64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32",
"D:/variables/mingw-w64/mingw64/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 4
}