VS Code配置C++语言开发与调试环境(超详细)
本地环境设置
如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件:
- 文本编辑器
- C++ 编译器
部分集成开发环境(IDE)同时拥有代码编辑器(文本编辑器)和编译环境,还拥有一整套的开发调试工具包和分析工具,也可以使用这些集成开发环境来减少配置的烦恼,比较典型的集成开发环境有:visual C++6.0(不推荐),dev-C++(不推荐),visual studio(推荐,但是只适用于Windows),codeblock等
关于文本编辑器
它用于编写源代码(C++源代码本质上就是一个后缀名为.cpp的文本文件)。
文本编辑器包括 Windows Notepad、vscode/vscodium 、sublime和 vim/vi等。
文本编辑器的名称和版本在不同的操作系统上可能会有所不同。例如,Notepad 通常用于 Windows 操作系统上,vim/vi 可用于 Windows 和 Linux/UNIX 操作系统上。
通过编辑器创建的文件通常称为源文件,源文件包含程序源代码。C++ 程序的源文件通常使用扩展名 .cpp、.cp 或 .c。
在开始编程之前,请确保您有一个文本编辑器,且有足够的经验来编写一个计算机程序,然后把它保存在一个文件中,编译并执行它。
备注:
vscode和vscodium是同一软件在不同许可证情况下的不同结果,vscode不开源二进制文件,而vscodium完全开源,这对Linux用户可能有所影响(部分linux用户不喜欢不开源的东西,不希望微软对自己做任何监控,vscode会在一定程度上收集用户报告)
.c为C语言的源代码文件,在C++中不建议使用!!!
C++ 编译器
写在源文件中的源代码是人类可读的源。它需要"编译",转为机器语言,这样 CPU 可以按给定指令执行程序。
C++ 编译器用于把源代码编译成最终的可执行程序。
大多数的 C++ 编译器并不在乎源文件的扩展名,但是如果您未指定扩展名,则默认使用 .cpp。
最常用的免费可用的编译器是 GNU 的 C/C++ 编译器,如果您使用的是 HP 或 Solaris,则可以使用各自操作系统上的编译器。
以下部分将指导您如何在不同的操作系统上安装 GNU 的 C/C++ 编译器。这里同时提到 C/C++,主要是因为 GNU 的 gcc 编译器适合于 C 和 C++ 编程语言。
安装 GNU 的 C/C++ 编译器
UNIX/Linux 上的安装
如果您使用的是 Linux 或 UNIX,请在命令行使用下面的命令来检查您的系统上是否安装了 GCC:
$ g++ -v
如果您的计算机上已经安装了 GNU 编译器,则会显示如下消息:
Using built-in specs.
Target: i386-redhat-linux
Configured with: ../configure --prefix=/usr .......
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)
如果未安装 GCC,那么请按照 http://gcc.gnu.org/install/ 上的详细说明安装 GCC。
Mac OS X 上的安装
如果您使用的是 Mac OS X,最快捷的获取 GCC 的方法是从苹果的网站上下载 Xcode 开发环境,并按照安装说明进行安装。一旦安装上 Xcode,您就能使用 GNU 编译器。
Xcode 目前可从 developer.apple.com/technologies/tools/ 上下载。
Windows 上的安装(与C语言编译环境相同)
C++与C适用相同的编译工具MinGW
为了在 Windows 上安装 GCC,您需要安装 MinGW。为了安装 MinGW,请访问 MinGW 的主页 www.mingw.org,进入 MinGW 下载页面,下载最新版本的 MinGW 安装程序,命名格式为 MinGW-
当安装 MinWG 时,您至少要安装 gcc-core、gcc-g++、binutils 和 MinGW runtime,但是一般情况下都会安装更多其他的项。
添加您安装的 MinGW 的 bin 子目录到您的 PATH 环境变量中,这样您就可以在命令行中通过简单的名称来指定这些工具。
当完成安装时,您可以从 Windows 命令行上运行 gcc、g++、ar、ranlib、dlltool 和其他一些 GNU 工具。
关于VScode及其扩展与MinGW的安装我这里就省略了,可以参考之前的文章:
https://blog.51cto.com/mlxia/6265740
https://www.cnblogs.com/xiaml/articles/17391759.html
注意事项(参照之前的文章补充)
创建项目文件夹
创建一个空文件用来存放C++代码或者项目

创建源码文件
在VScode中"File"->"Open Folder"找到刚创建的文件夹并打开。

首先创建一个.cpp的源码文件并保存,内容如下:
#include <iostream>
using namespace std;
// main() 是程序开始执行的地方
int main(){
cout << "Hello World"; // 输出 Hello World
return 0;
}

安装"C/C++ Extenson Pack"扩展
这个时候我们在右下角可以看到VScode提示我们安装扩展;我们点击"Install"

installing变成uninstall并且没有报错就是安装成功了。

这个扩展的名字是"C/C++ Extenson Pack",它和C语言使用的扩展"C/C++"的图标和发布者都是一样的,大家注意区别。

接下来需要做VScode针对编译环境的关联设定。
与C语言编译环境的配置需要注意的是3个配置文件的确认:
- c_cpp_properties.json
- tasks.json
- launch.json
生成并配置c_cpp_properties.json
(这里和C语言的tasks.json配置有点区别)
接下来配置编译器路径,按快捷键Ctrl+Shift+P(或者"view"->"Command Palette...")调出命令面板,输入C/C++,选择“Edit Configurations(UI)”进入配置。这里配置两个选项: - 编译器路径:
我的环境是:D:\MinGW\C\mingw64\bin\g++.exe
这里的路径根据大家自己安装的Mingw编译器位置和配置的环境变量位置所决定。

你可能出现报错:
Command 'C/C++: Edit Configurations (UI)' resulted in an error (command 'C_Cpp.ConfigurationEditUI' not found)

更新下VScode的版本"Install Update":

再次重复上面的步骤:

在这里需要注意"Compiler path"是你的g++.exe程序的位置。我的环境是:D:\MinGW\C\mingw64\bin\g++.exe
而不是:
D:\MinGW\C\mingw64\bin\gcc.exe哦

IntelliSense 模式:gcc-x64(legacy)(当然是根据你自己的OS环境像对应的。)
其他的保持默认就行了。
配置完成后,此时在侧边栏可以发现多了一个.vscode文件夹,并且里面有一个c_cpp_properties.json文件,内容如下,说明上述配置成功。现在可以通过Ctrl+<`快捷键打开内置终端并进行编译运行了。

代码如下:(也可以直接对此文件进行修改)
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:/MinGW/C/mingw64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
生成并配置tasks.json
配置构建任务
接下来,创建一个tasks.json文件来告诉VS Code如何构建(编译)程序。该任务将调用g++编译器基于源代码创建可执行文件。 按快捷键Ctrl+Shift+P调出命令面板,输入tasks,选择“Tasks:Configure Default Build Task”:

备注:若出现"Create task.json file from template",则是因为前面的扩展程序"C/C++ Extenson Pack"没有安装导致。
再选择“C/C++: g++.exe build active file”:

选择后系统自动在.vscode目录下会出现一个名为tasks.json的配置文件,内容如下:

代码:
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "D:/MinGW/C/mingw64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "D:/MinGW/C/mingw64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: D:/MinGW/C/mingw64/bin/g++.exe"
}
]
}
生成并配置launch.json
配置调试设置
这里主要是为了在.vscode文件夹中产生一个launch.json文件,用来配置调试的相关信息。点击菜单栏的Run-->Add Configuration:

选择C++(GDB/LLDB):

紧接着会产生一个launch.json的文件;初始的配置内容是:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": []
}
接下来我们可以点击Add Configuration按钮自己添加配置,也可以直接将我的配置好的json文件内容复制过去,因为些配置对新手不是特别友好,相关具体细节还是需要参考官方文档。下面是笔者的launch.json文件的内容:
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "MyLaunch_C++", //调试配置的名称,任意你喜欢的有意义的名字均可
"preLaunchTask": "C/C++: g++.exe build active file", //调试前执行的任务,就是之前配置的tasks.json中的label字段 **注意与tasks.json文件的关联
"type": "cppdbg", //配置类型,对于C++程序只能为cppdbg
"request": "launch", //请求配置类型,可以为launch(启动)或attach(附加)
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe", //调试程序的路径名称;这里要和tasks.json中配置为-o参数指定的输出文件一致尤其注意后缀名 **注意与tasks.json文件的关联
"args": [], //调试传递参数,默认是空的
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true, //true显示外置的控制台窗口,false显示内置终端
"MIMode": "gdb",
"miDebuggerPath": "D:\\MinGW\\C\\mingw64\\bin\\gdb.exe", //**这里是你环境中mingw的gdb.exe[与g++.exe程序相同路径文件名不同]的路径哦;注意不是编译器g++.exe的路径 **注意**
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

修改完成后保存关闭。
验证调试
在cpp文件中点击菜单栏的Debug-->Start Debugging或者使用快捷键F5.

可以看到调试程序在运行并为我们通过tasks.json的配置生成了.exe的输出文件。

由于我们没有为代码设置断点,因此程序并没有中途停止,大家可以尝试设置断点后进行调试。或者再代码中加入pause语句使程序中途暂停。

再次按F5.

最后:
其实,在安装了"C/C++ Extenson Pack"扩展后可以i不用创建launch.json配置文件,直接F5开始调试也是可以的。
本文写的比较细致,略显啰嗦,但是对于初学者应该是很有帮助的。
本文来自博客园,作者:夏明亮,转载请注明原文链接:https://www.cnblogs.com/xiaml/articles/17421264.html


浙公网安备 33010602011771号