在Visual Studio Code (vscode) 配置C、C++环境的基础上,增加了解决中文乱码的问题。
总体流程:
1.下载安装vscode
2.安装插件
3.安装编译、调试环境
4.配置系统环境变量path
5.修改vscode调试配置文件(及解决中文乱码!!)
6.其他
7.Linux版本配置(简要)
官网即可
若是电脑上原来装着codeblocks,Dev C++等可以跳过这步。目前windows下调试仅支持 Cygwin 和 MinGW。 这里使用的是MinGW。下面是MinGW的安装配置过程:
http://mingw.org/
进入官网点击右侧 Download Installer下载安装器
打开安装器点击install准备安装:
选择一个安装目录,默认为C:\MinGW这里选择的是D:\MinGW
点击Continue开始安装,安装过程需联网,若安装时提示error则需安装
安装过程很快,结束后Continue按钮恢复为可用状态,点击完成安装。
运行MinGW安装管理器。
主要是安装gdb,gcc和g++
注意这里gdb必选,否则无法调试
选中几个需要的项右键Make for Installation进行标记,其中gcc和g++为c和c++编译器
选择完全部想要安装的项后点击左上角Installation菜单下的Apply Changes应用修改,过程需联网,中间出现error可先继续,若最后失败则需更新,建议。
更新:单独装MinGW ,我最早是这么搞的,要是发现不可以(无法下载或者很怀疑自己MinGW没安装好等),可以试试codeblocks或者Dev-cpp等等,这些IDE自带编译器,还是看这篇文章 里面有使用codeblocks自带的MinGW的细节,当然要是可以就继续。
然后配置系统环境变量path,这一步为必须
在 我的电脑 上右键 属性:
然后按照下面步骤做即可,注意最后新建的项要与之前MinGW安装位置相对应
打开文件夹后,新建test.cpp(随便建,或者main.cpp)进行输入代码测试:
然后会在工作目录下的生成一个launch.json的启动配置文件:
使用下面代码替换该文件:(只是在vsc自己产生的json文件加了一些行)
launch.json中有很多属性可以设置, 通过智能提示查看有那些属性可以设置, 如果要查看属性的具体含义, 可以把鼠标悬停在属性上面, 会属性的使用说明.
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch", // 配置名称,将会在启动配置的下拉菜单中显示
"type": "cppdbg", // 配置类型,这里只能为cppdbg
"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)
"program": "${workspaceRoot}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false
"cwd": "${workspaceRoot}", // 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"environment": [],
"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台
"MIMode": "gdb",
"miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应
"preLaunchTask": "g++", // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
注意miDebuggerPath要与MinGw的路径对应
注意:miDebuggerPath是\,与直接粘贴过来的路径不一样,需要加一个”\”(冒号后面的两个反斜杠“\”),或者使用一个“/”
替换后保存,然后切换至test.cpp,按F5进行调试,此时会弹出一个信息框要求你配置任务运行程序,点击它~
【注意】,上面的那个目前的cpp插件似乎没有了,若是直接按F5会出现下面这个图,不清楚评论区童鞋说的是不是这个?
请点击第二个“配置任务”,然后出现这个:点就行了~
在这里随便选一个:(我选的others)【随便选,反正最后tasks.json文件要被覆盖】【下面的图是更新之前的图】
然后用下面代码替换:【更新:原来的"version": "0.2.0"似乎会有下划线报错,那就按照vscode说的改为2.0.0好了,下面的是最新的复制即可。】实际上,下面的代码我是增加了引入head.h头文件的格式
{
"version": "2.0.0",
"command": "g++",
"args": ["-g","${file}","-include","${workspaceRoot}\\.vscode\\head.h","-o","${fileBasenameNoExtension}.exe"], // 编译命令参数。修改的是这一行,添加了-include命令,预编译头文件
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
重要:
#include
static void before(void) __attribute__((constructor));
static void after(void) __attribute__((destructor));
static void middle(void);
static void before()
{
system("chcp 65001"); //切换字符集
system("cls");
}
static void after()
{
system("echo.");
system("pause");
}
{
"version": "2.0.0",
"command": "g++",
"args": ["-g","${file}","-include","${workspaceRoot}\\.vscode\\head.h","-o","${fileBasenameNoExtension}.exe"], // 编译命令参数,修改的是这一行,添加了-include命令,预编译头文件
"problemMatcher": {
"owner": "cpp",
"fileLocation": ["relative", "${workspaceRoot}"],
"pattern": {
"regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}
}
启动一下,F5调试即可