[版权声明] 本站内容采用 知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆 (CC BY-NC-SA 3.0 CN) 进行许可。
部分内容和资源来自网络,纯学习研究使用。如有侵犯您的权益,请及时联系我,我将尽快处理。
如转载请注明来自: Dreamlike博客,本文链接:VSCode+CPP开发环境
准备开始转向用VSCode做开发,所以把一些常用的开发环境转移到VSCode上。
这篇介绍关于C++的开发环境。博主打算就是中小型的不涉及界面的就用VSCode开发C++,如果涉及windows界面的还是用Visual Studio这种IDE比较好。
其他相关博文:
《VSCODE+PYTHON开发环境》
《VSCODE+GOLANG开发环境》
《VSCODE+NODE.JS+ANGULAR2开发环境》
一、测试环境
- Windows 8.1
- VSCode v1.11.1
- tdm-gcc v5.1.0
二、安装Visual Studio Code
去官网下载VSCode并安装: https://code.visualstudio.com/Download
三、安装VSCode的C++插件
在VSCode上搜索插件C++,找到作者是Microsoft的,安装即可。
或者Ctrl+P,再输入ext install cpptools 进行安装。
四、安装TDM-GCC
VSCode默认不带编译和调试环境的,需要自行安装编译器等。
我选用的是TDM-GCC编译套件,方便易用。(Codeblocks、Dev-Cpp等默认带的都是这款)。
下载地址:http://tdm-gcc.tdragon.net/download
根据自己的情况下载安装即可,会自动添加路径到环境变量PATH。
五、配置VSCode
安装好插件之后,在磁盘新建好自己的工作目录,比如我的是D:\Dev\DevCpp,在VSCode的资源管理器中打开这个目录,
按F5,打开launch.json文件,编辑并保存:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"version":"0.2.0",
"configurations":[
{
"name":"C++ Launch (GDB)",// 配置名称,将会在启动配置的下拉菜单中显示
"type":"cppdbg",// 配置类型,这里只能为cppdbg
"request":"launch",// 请求配置类型,可以为launch(启动)或attach(附加)
"launchOptionType":"Local",// 调试器启动类型,这里只能为Local
"targetArchitecture":"x86",// 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
"program":"${fileDirname}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径
"miDebuggerPath":"gdb.exe",// miDebugger的路径,注意这里要与MinGw的路径对应。64位系统用gdb64.exe
"args":[
""
],// 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry":false,// 设为true时程序将暂停在程序入口处,我一般设置为true
"cwd":"${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"externalConsole":true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
"preLaunchTask":"g++" // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
}
]
}
按F1键,出来输入框后,输入task,选择“配置任务运行程序”,再随便选一项,编辑并保存tasks.json:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"version":"0.1.0",
"command":"g++",
"args":[
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}.exe"
],// 编译命令参数
"problemMatcher":{
"owner":"cpp",
"fileLocation":[
"relative",
"${workspaceRoot}"
],
"pattern":{
"regexp":"^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file":1,
"line":2,
"column":3,
"severity":4,
"message":5
}
}
}
在.vscode目录下新建文件c_cpp_properties.json,编辑并保存:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"configurations":[
{
"name":"Win32",
"includePath":[
"D:/Program Files/TDM-GCC-64/include",
"D:/Program Files/TDM-GCC-64/x86_64-w64-mingw32/include",
"D:/Program Files/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include",
"D:/Program Files/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++"
],
"browse":{
"limitSymbolsToIncludedHeaders":true,
"databaseFilename":""
}
}
],
"clang_format":{
"style":"file",
"fallback-style":"LLVM",
"sort-includes":false
}
}
其中includePath项的路径更改为你安装的TDM-GCC的实际路径,这一项是让VSCode识别到C++的头文件,不然找不到的时候会报错,编译不成功。
六、调试C++程序
新建main.cpp文件,编辑并保存:
#include <iostream>
usingnamespace std;
intmain()
{
intvar =100;
cout<< "Hello "<< var<< endl;
return0;
}
在return 0处下断点,按F5进行调试(如果环境变量还没生效,重启下就好):
七、使用Make编译工程(可选)
如果使用g++不能满足需求,还可以选择Make进行工程编译,
按F5,打开launch.json文件,编辑并保存:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"version":"0.2.0",
"configurations":[
{
"name":"C++ Launch (GDB)",// 配置名称,将会在启动配置的下拉菜单中显示
"type":"cppdbg",// 配置类型,这里只能为cppdbg
"request":"launch",// 请求配置类型,可以为launch(启动)或attach(附加)
"launchOptionType":"Local",// 调试器启动类型,这里只能为Local
"targetArchitecture":"x86",// 生成目标架构,一般为x86或x64,可以为x86, arm, arm64, mips, x64, amd64, x86_64
"program":"${fileDirname}/main.exe",// 将要进行调试的程序的路径
"miDebuggerPath":"gdb.exe",// miDebugger的路径,注意这里要与MinGw的路径对应。64位系统用gdb64.exe
"args":[],// 程序调试时传递给程序的命令行参数,一般设为空即可
"stopAtEntry":true,// 设为true时程序将暂停在程序入口处,我一般设置为true
"cwd":"${workspaceRoot}",// 调试程序时的工作目录,一般为${workspaceRoot}即代码所在目录
"externalConsole":true,// 调试时是否显示控制台窗口,一般设置为true显示控制台
"preLaunchTask":"build" // 调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc
}
]
}
编辑并保存tasks.json:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version":"0.1.0",
"command":"mingw32-make",
"isShellCommand":true,
"isBuildCommand":true,
"showOutput":"always",
"echoCommand":true,
"suppressTaskName":true,
"options":{
"cwd":"${fileDirname}"
},
"tasks":[
{
"taskName":"build",
"args":[
"all"
]
},
{
"taskName":"clean",
"args":[
"clean"
]
}
],
"problemMatcher":{
"owner":"cpp",
"fileLocation":[
"relative",
"${workspaceRoot}"
],
"pattern":{
"regexp":"^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file":1,
"line":2,
"column":3,
"severity":4,
"message":5
}
}
}
在工程目录下新建Makefile文件:
all:
g++-static-g-omain.execlassdemo.cppmain.cpp
clean:
del/f *.omain.exe
然后建立三个工程文件做测试:
classdemo.h
#ifndef CLASSDEMO_HPP
#define CLASSDEMO_HPP
class Classdemo{
public:
voidgreet();
};
#endif
classdemo.cpp
#include "classdemo.h"
#include <iostream>
void Classdemo::greet(){
std::cout<< "Hello"<< std::endl;
}
main.cpp
#include "classdemo.h"
intmain()
{
Classdemoclassdemo;
classdemo.greet();
return0;
}
测试结果:
八、格式化工具ClangFormat的配置
这个插件自带的格式化工具ClangFormat,如果不自己配置好文件好像会有点问题,所以要自己处理下。
先找到clang-format.exe文件,位于:
%USERPROFILE%\.vscode\extensions\ms-vscode.cpptools-0.10.5\LLVM\bin
在命令提示符下,执行:
cd/d%USERPROFILE%\.vscode\extensions\ms-vscode.cpptools-0.10.5\LLVM\bin
clang-format-style=llvm-dump-config> .clang-format
这样就可以生成LLVM风格的配置文件.clang-format,把这个文件剪切到VSCode的CPP工程目录,下次格式化代码就没问题了。其他格式化风格的,看官网文档:Configurable Format Style Options
参考链接:
《Visual Studio Code如何编写运行C、C++?》
《windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境》
《【VSCode】Windows下VSCode编译调试c/c++》
《配置VSCode》
《ClangFormat》
如果本文对您有所帮助,可以请作者喝杯咖啡,感谢支持^_^
支付宝支付
微信支付