Windows10环境下VS Code配置c/c++环境
文章是对 https://code.visualstudio.com/docs/cpp/config-mingw的翻译。一来供自己快速查看,二来给各位看官省去看原文的烦恼。不过,英文水平好的同学直接按照官方教程操作更佳。
1、安装VS和Mingw-w64(建议路径不要出现中文和空格)
1、Install Visual Studio Code.
2、Install the C/C++ extension for VS Code. You can install the C/C++ extension by searching for ‘c++’ in the Extensions view (Ctrl+Shift+X).
3、Install Mingw-w64 via the SourceForge website. Click Mingw-w64 to download the Windows Mingw-w64 installer.
- Run the installer.
- For Architecture select x86_64(关键) and then select Next.
- Next again to use the default installation folder and install MinGW.
4、Add the path to your Mingw-w64 bin folder to the Windows PATH environment variable by using the following steps:
环境变量添加此处不再赘述(可见英文)。
后面几乎没有英文,请放心食用。
2、检查MinGW安装
终端下输入命令:
g++ -v
gdb -v
出现以下即为成功
3、创建工程
1、在某个目录下创建你的工程文件夹HELLOWORLD,用VS打开
2、添加c++文件helloworld.cpp, Ctrl+S保存
代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};
for (const string& word : msg)
{
cout << word << " ";
}
cout << endl;
}
4、编译helloworld.cpp
1、创建tasks.json
(告诉VS代码如何构建(编译)程序),它会调用g++编译器根据源代码创建可执行文件。
- choose 终端>配置默认生成任务(Terminal > Configure Default Build Task).
- Choose
g++.exe build active file
(将构建当前在编辑器中显示(活动)的文件)
这将在.vscode文件夹中创建一个task.json文件,并在编辑器中将其打开。
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build active file",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
"args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
参考有关变量解释
command
:指定要运行的程序;在这个例子中就是g++。args
:指定将传递给g++的命令行参数。这些参数必须按照编译器所期望的顺序指定。
这个任务告诉g++获取活动文件(${file}),编译它,并在当前目录(${fileDirname})中创建一个与活动文件同名但扩展名为.exe的可执行文件(${fileBasenameNoExtension}.exe),在我们的示例中生成helloworld.exe。label
:是你将在任务列表中看到的内容;你可以给它起任何你喜欢的名字。isDefault
:组对象中的true值指定当您按Ctrl + Shift + B时将运行此任务。此属性仅出于方便起见;如果将其设置为false,仍然可以从“Terminal ”菜单中使用“Tasks: Run Build Task.”来运行它。
5、运行编译
1、返回helloworld.cpp
。您的任务将构建活动文件,并且您希望编译helloworld.cpp。
2、要运行task.json中定义的构建任务,请按Ctrl + Shift + B或从**终端(Terminal)**主菜单中选择“运行生成任务(Run Build Task)”。
3、对于成功的g ++构建,输出看起来像这样:
或者
4、使用+按钮创建一个新的终端,输入hello(or .\helloworld.exe
if you use a PowerShell terminal)
6、修改task.json
1、 using an argument like "${workspaceFolder}\\*.cpp"
instead of ${file}
.:这将在当前文件夹中生成所有.cpp文件。
2、您也可以通过替换来修改输出文件名"${fileDirname}\\${fileBasenameNoExtension}.exe"
用带有硬编码的文件名(例如 "${workspaceFolder}\\myProgram.exe"
).
7、调试helloworld.cpp
1、创建一个launch.json
文件来配置VS Code,按F5调试程序时启动GDB调试器。
- 从主菜单,选择运行 >添加配置…(Run > Add Configuration…)然后选择c++ (GDB/LLDB)。
- 然后,您将看到各种预定义调试配置的下拉列表(列表应该是自动弹出,若未弹出,删除文件重新操作)。选择 g++.exe构建并调试活动文件( g++.exe build and debug active file)。
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
program
:指定要调试的程序。在这里它被设置为活动文件夹${fileDirname}
和扩展名为.exe
的活动文件名${fileBasenameNoExtension}
。如果helloworld.cpp
是活动文件,它将是helloworld.exe
stopAtEntry
:默认情况下,C ++扩展不会在源代码中添加任何断点,并且stopAtEntry
值设置为false
。将stopAtEntry
值更改为true
,以使调试器在启动调试时在main
方法上停止。preLaunchTask
:用于指定启动前要执行的任务。确保它与task.json
文件标签设置一致。
8、开始调试
1、返回helloworld.cpp
,因此它是活动文件。
2、按F5或者运行>开始调试(Run > Start Debugging)。集成终端出现在源代码编辑器的底部。在“调试输出”选项卡中,您将看到指示调试器已启动并正在运行的输出。编辑器突出显示main方法中的第一条语句。这是C ++扩展自动为您设置的断点:
左侧的“运行”视图显示调试信息。在代码编辑器的顶部,将显示一个调试控制面板。您可以通过抓住左侧的点在屏幕上移动它。
具体调试指令在此就不再赘述。
9、C/C++ configurations
如有需要参考原文
如果希望对C/ c++扩展进行更多控制,可以创建一个c_cpp_properties.json
文件,这将允许您更改设置诸如编译器的路径,包括路径,c++标准(默认是C + + 17),等等。
You can view the C/C++ configuration UI by running the command C/C++: Edit Configurations (UI) from the Command Palette (Ctrl+Shift+P).
这将打开“ C / C ++配置”页面。当您在此处进行更改时,VS Code会将它们写入.vscode文件夹中名为c_cpp_properties.json的文件中。
在这里,我们将配置名更改为GCC,将编译器路径下拉菜单设置为g++编译器,并将IntelliSense模式匹配编译器(GCC -x64)
c_cpp_properties.json
{
"configurations": [
{
"name": "GCC",
"includePath": ["${workspaceFolder}/**"],
"defines": ["_DEBUG", "UNICODE", "_UNICODE"],
"windowsSdkVersion": "10.0.18362.0",
"compilerPath": "C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe",
"cStandard": "c11",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
只有当您的程序包含的头文件不在工作区中或在标准库路径中时,您才需要添加到Include path数组设置中。
如若你的VS安装时,不支持鼠标右击打开文件夹。可参考:https://www.jianshu.com/p/e8c29211fba9