CMake在Windows环境下Visual Studio Code的使用
1,安装下载地点:Visual Studio Code - Code Editing. Redefined
https://i-blog.csdnimg.cn/direct/f6bd685383ed44f8826ec37d6068ee3f.png
https://i-blog.csdnimg.cn/direct/ed6231b953194be8aafb93ac15e287c4.png
双击安装
https://i-blog.csdnimg.cn/direct/05a8fd438f854f7cbbfba0899d6e3e1a.png
选择安装路径
https://i-blog.csdnimg.cn/direct/f1547482c27f4757aecfbdf4a27304aa.png
https://i-blog.csdnimg.cn/direct/5af0550a345343f1864c0bc6e3f84b05.png
https://i-blog.csdnimg.cn/direct/38173413cf2748228e639a75fb215267.png
https://i-blog.csdnimg.cn/direct/a0137c5c7c1940e0aacffca311034e20.png
https://i-blog.csdnimg.cn/direct/1a6245fecb2a411ea8f44c1eb7f1dbb7.png
可勾选微软的AI工具
https://i-blog.csdnimg.cn/direct/da5b30aae6894dfdb4ecd35eec09cd64.png
2,环境先容
2.1 ,界面先容
https://i-blog.csdnimg.cn/direct/224f3d3690d14ccf849ce89c8b287cd5.png
2.2中文包的安装
https://i-blog.csdnimg.cn/direct/add380fe0745405d8235dc58607e9934.png
下载中文简体
https://i-blog.csdnimg.cn/direct/90ba69bef5b645a5a5111909d7d10b97.png
汉化后的界面
https://i-blog.csdnimg.cn/direct/669c428a01944ebd9590b4e6ac4d4349.png
2.3 设置C/C++环境
VSCode安装好之后,我们还是要知道,VSCode毕竟是一个高级的编辑器,只能用来写C/C++代码,不能直接编译代码。
所以,如果我们要能使用VSCode搭建C/C++的编译和调试环境,还必须有编译器使用。
为了方便,我们就使用MinGw-w64 ,MinGw-w64移植到windows平台的一个gcc编译器,使用起来也是非常方便的。
下面我们就演示怎么下载和设置MinGw-w64
地点:https://sourceforge.net/projects/mingw-w64/
https://i-blog.csdnimg.cn/direct/c7da35ecec2742a0a29e8c26f5370bac.png
https://i-blog.csdnimg.cn/direct/518efe815fa648aba95bb21675268b1f.png
https://i-blog.csdnimg.cn/direct/66011c565fe147c29b58bf594d4084c2.png
https://i-blog.csdnimg.cn/direct/e94fddae919b4e3ab37da1e2e04c52e4.png
解压后我们会得到一个mingw文件夹
https://i-blog.csdnimg.cn/direct/4d11d501e3b545b7a849a3a30e37c4f1.png
将其复制到你需要的位置
双击打开并进入bin文件夹内,这里有我们的gcc(C语言编译器)、g++(C++编译器),gdb调试器(可以使用断点调试)等
这里说gcc是C语言编辑器,g++是C++的编译器其实不太准确,因为gcc也可以编译C++,但是需要自己设置链接C++的库,g++默认链接了C++的库。
https://i-blog.csdnimg.cn/direct/d2bb4b133a564bc197d419760ded7921.png
复制bin路径
https://i-blog.csdnimg.cn/direct/cfe5a56180224a158eaaa0ecfb206e98.png
https://i-blog.csdnimg.cn/direct/d8a719c4d0824e66813f6e7558cce5c6.png
!如许我们的预备环境就设置好了
我们可以使用一些下令来测试一下,按win+r输入cmd打开终端
以此输入
https://i-blog.csdnimg.cn/direct/36778061805349139355f4a29aaa0ff2.png
https://i-blog.csdnimg.cn/direct/a344e260e8ea40abb700fab3a19b78d7.png
2.4
安装vscode并安装一下必备的插件
vscode安装各人应该都会,如果通过浏览器下载vscode速度比力慢的话,可以复制下载链接放到迅雷里面去下载
安装必备插件
我们需要安装两个插件
[*] 安装C/C++插件:
https://i-blog.csdnimg.cn/direct/aa090cede9f749d69ecc677cdbdbd2b4.png
3 设置
设置阶段我提供了两类设置方式,各人按需选择即可
第一类 使用vscode插件举行设置
这类设置方法一般来说不需要自己动手设置内容,只需要安装一下插件即可。
优点:使用简单,基本上拿来就可以使用,比力适合C/C++初学者(因为老师们貌似上来都是直接教C/C++语法,而不是C/C++编译器、C/C++标准、C/C++项目构成等一些C/C++基本内容)以及一些不需要复杂功能的同学。
缺点:可扩展性差(使用插件基本上是用插件设置好的下令去编译运行程序,如果你需要改或扩展一些设置的话,你得对一些下令很熟悉,当然这不是重点,重点是使用插件设置一般只能有一个有用的设置项,例如:如果你想从调试模式切换到编译模式,你得手动更改一下设置文件,而不是像大部门编辑器那样,选择一个设置去运行)
样例一:使用run code插件
因为插件设置实质上是用它提供的指令举行编译执行,因此无法直接使用断点调试功能,需要对设置举行一定的更改
这里以使用run code为例,在扩展里搜索code runner这个插件并安装
https://i-blog.csdnimg.cn/direct/50d954b6e4e4487f97082b030837aefa.png
https://i-blog.csdnimg.cn/direct/a4eb8d526fce4ac1953a86a58ef83d94.png
程序是在下面的输出栏中运行的,是无法输入内容的,所以我们还需要改一些内容,以便能够正常输入内容。
找到code runner扩展,点击扩展设置,找到Run In Terminal并勾上,如许就能够正常地输入内容了。
https://i-blog.csdnimg.cn/direct/821780ad00e541c682f7c07a459168be.png
https://i-blog.csdnimg.cn/direct/7182f861812e4fd7968126fae9aaa5e0.png
https://i-blog.csdnimg.cn/direct/5ec600e987a543978885719c3fa05d3d.png
第二类 自界说设置
这类设置方法要自己手写设置内容,比力复杂,但可扩展性强
优点:可扩展性强
缺点:设置比力复杂、需要一定的知识储备
样例一:使用windows启动,让编译的文件放在同目次下的build文件夹中,并在黑窗(cmd)中运行
在设置之前,我们需要先创建一个.cpp文件,这里我创建了一个Test文件夹,并写了一个hello world。
请注意,一切的设置都要从一个cpp文件的编辑界面开始,否则vscode的提示大概会不太一样
样例一的设置方式因为本质上就是直接编译运行,因此无法使用断点调试功能
https://i-blog.csdnimg.cn/direct/767d6150475d46ecba69d0ac706d0ff3.png
第一步:设置基本环境
按下ctrl + shift + p打开下令面板,输入C/C++,找到C/C++编辑设置(UI)打开
https://i-blog.csdnimg.cn/direct/6f62414579e743188849cf0a329c35d0.png
你可以在这个页面中选择编译器,更改C/C++标准,还可以更改IntelliSense 模式
PS:IntelliSense 模式和文本解析有关,如果你选择的IntelliSense模式和你的编译器不匹配,那么会报错,这就会引起例如写代码的时间没有提示、编辑器说代码精确、编译的时间却不精确等问题
https://i-blog.csdnimg.cn/direct/d56adb9eda4c499a8993182a31181545.png
这里可以选择你需要的C/C++标准
https://i-blog.csdnimg.cn/direct/ed35b3b2bfb94569aa78fc5abf51cd2b.png
设置的内容会自动写入.vscode文件夹中的c_cpp_properties.json文件中。
这是我的c_cpp_properties.json文件内容
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "F:/C++Development/mingw-w64/13.1.0/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
https://i-blog.csdnimg.cn/direct/9c7ab5c419904c34b5f51076868d0a1a.png
第二步:设置task编译使命
按下ctrl + shift + p打开下令面板,输入task,找到 使命:设置使命 打开。
https://i-blog.csdnimg.cn/direct/30b13dab3bc941bb8e41a3ff184f7919.png
https://i-blog.csdnimg.cn/direct/906ffea8a9c64b5caf7aa8c1be386b4b.png
这里,先容一下文件内需要注意的设置项
https://i-blog.csdnimg.cn/direct/dc39933801df4b23b2a99c7e0cefabe6.png
这是我的task.json中的设置内容
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "E:/Microsoft VS Code/mingw64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
// 这个命令的作用是转化成GBK编码,可以防止终端中出现乱码
// 乱码问题原因:终端编码和vscode编码不一致。
// 国内大部分电脑终端编码默认是gbk,而vscode编码默认是utf-8,所以会出现问题乱码问题。
// 加上这个命令后先转化为gbk编码后编译,就不会出现乱码了。
// "-fexec-charset=GBK",
"-g",
"${file}", // 如果要多文件编译,改成 "${fileDirname}\\*.c*" 可以把c和cpp文件都作为cpp文件编译。
"-o",
// 这里加了一个build,让编译后的程序在同目录下的build文件夹中
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "E:/Microsoft VS Code/mingw64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "编译器: E:/Microsoft VS Code/mingw64/bin/g++.exe"
}
]
} 第三步:设置launch.json启动使命
因为现在的C/C++插件不支持通过下令面板创建使命,所以我们需要手动建一个launch.json文件
建完后打开,我们会发现右下角有一个添加设置
https://i-blog.csdnimg.cn/direct/bd1cdf8b5e674666a0bb07122fb7a562.png
选择windows启动
https://i-blog.csdnimg.cn/direct/d7c7f8cfc6144ef8a5844ba17d820e96.png
{
"configurations": [
{
"name": "(Windows) 启动",
"type": "cppvsdbg",
"request": "launch",
// 这项是启动的程序位置,把tasks.json中的生成文件的路径复制粘贴过来就可以了
"program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
// 这项改为integratedTerminal,就和code runner一样是在vscode内置终端中运行了
"console": "externalTerminal"
// 这一项一开始没有,要自己写,代表启动前先执行的编译任务,把tasks.json中的label复制粘贴过来就可以了
}
]
}
https://i-blog.csdnimg.cn/direct/0c0b39be85e546dc9f84ba17379c16e8.png样例二:使用gdb启动,让编译的文件放在同目次下的build文件夹中,并在vscode中运行(可以使用断点调试)
样例二使用了gdb调试器,所以能使用vscode的断点调试功能。
样例二与样例一稍作更改的地方是launch启动使命和task编译使命,因此就不配图演示了,只需要对照有注释的地方举行更改即可。
task编译使命
这是我的编译使命:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "E:/Microsoft VS Code/mingw64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
// 这个命令的作用是转化成GBK编码,可以防止终端中出现乱码
// 乱码问题原因:终端编码和vscode编码不一致。
// 国内大部分电脑终端编码默认是gbk,而vscode编码默认是utf-8,所以会出现问题乱码问题。
// 加上这个命令后先转化为gbk编码后编译,就不会出现乱码了。
"-fexec-charset=GBK",
"-g",
"${file}", // 如果要多文件编译,改成 "${fileDirname}\\*.c*" 可以把c和cpp文件都作为cpp文件编译。
"-o",
// 这里加了一个build,让编译后的程序在同目录下的build文件夹中
"${fileDirname}\\build\\main.exe"
],
"options": {
"cwd": "E:/Microsoft VS Code/mingw64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "编译器: E:/Microsoft VS Code/mingw64/bin/g++.exe"
}
]
} launch调试使命
注意:如果你不是copy这里给出的代码,而是自己像上文一样点击添加设置然后修改,请选择gdb启动而不是windows启动。
{
"configurations": [
{
"name": "(gdb) 启动", // 调试任务的名称,改一个你想要的
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\build\\main.exe",// 入口程序的位置,和task任务生成的程序位置相同
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "E:/Microsoft VS Code/mingw64/bin/gdb.exe", // gdb调试器的位置,和gcc、g++在一个目录下
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C++调试"// 启动前调用编译任务
}
]
} https://i-blog.csdnimg.cn/direct/311761f81fb641ae9e12560f143e5a69.png
常见问题
Q:终端出现乱码怎么办?
A:在编译的时间加上"–exec-charset=GBK",具体可以看本教程的示例,两类设置方式中都有讲解
Q:在第二种设置方式中,选择task使命时,没有g++、gcc选项怎么办?
A:copy教程中的设置,然后对照图片说明举行更改。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]