官方文档是最香香的:https://code.visualstudio.com/docs/cpp/config-mingw
好奇的可以看看,捋清楚他们之间的关系
小总结:
简而言之,MinGW 是一个工具集,它允许在Windows上使用 GNU 工具链进行开发。GCC 是 GNU 工具链中的主要组件,而 gcc 和 g++ 是 GCC 的其中两个编译器,分别用于编译C和C++代码。
我们需要从中获取编译器g++,调试器gdb
这是Visual Stuidio(IDE)用的编译器,在VSCode中,如果选择MSVC作为编译器,结果就是生成一个对应VS版本的.sln解决方案,后面就不说了吧 用Visual Studio 2022 打开就行。
如果是纯VS Code环境开发C++的话,毫无疑问还是要用 g++
下载MinGW:https://sourceforge.net/projects/mingw-w64/files/
Files
里面选择64位用于windows平台的这个sjlj
的版本(稳定版压缩包版本),解压后找到bin/g++.exe
。
把g++.exe
的路径添加到系统环境变量中
篇幅考虑,下载VS Code就略过了
用途可以自己看插件说明
C/C++插件需要指定编译器路径,否则智能提示可能不管用
ctrl+shift+p
-> 输入C/C++ -> 选择编辑配置(UI)c_cpp_properties.json
,这跟UI编辑界面的内容是一样的,并且在这两个地方任意一个地方进行改动后,另一个也会相应的发生变化。此时可能注意到根目录下新增了一个文件.vscode/tasks.json
,这是C/C++插件默认帮我们生成的,必须有这个文件才能编译
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 生成活动文件",
"command": "E:\\MingGW\\mingw64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
它帮你简化了很多操作,这里的行为就相当于你在命令行里输入:
g++.exe fdiagnostics-color=always -g main.cpp -o main.exe
.\main.exe
tasks.json
是 Visual Studio Code(VSCode)中用于配置任务(tasks)的文件。任务是指一系列在 VSCode 中可以执行的操作,通常是编译、构建、运行程序。tasks.json 文件允许你定义这些任务的配置信息。
字段解释:
调试,需要创建launch.json
,并指定调试相关配置属性,比如调试的目标可执行文件,调试采用的调试器路径等
首先进入调试界面,创建launch.json,弹出的下拉菜单中选择C++(GDB)
默认创建好的文件中,右下角选择添加配置->(gdb)启动
,这会为你生成默认的配置信息
默认生成的launch.json
内容如下
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "输入程序名称,例如 ${workspaceFolder}/a.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/path/to/gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
}
]
}
字段解释:
"${workspaceFolder}/main.exe"
,表示工作区中main.exe。"E:\\MingGW\\mingw64\\bin\\gdb.exe"
,你需要将其替换为你系统中 GDB 的实际路径。设置好之后,就可以开始断点调试了
在源代码文件中打断点(F9)
,然后运行->启动调试(F5)
,也可以在三角按钮那里选择调试
settings.json
是 VSCode中用于配置编辑器的各种行为和选项。这个文件存储了用户自定义的设置,以便在不同的项目和工作区中重用。VS Code会实时的把你修改过的设置写入到setting.json
中
setting.json
文件是存放在C盘Users/username/AppData/Roaming/Code/user/
中的,而作用域为当前项目的则是存放在项目根目录的.vscode/
里面。必须掌握的技能,目前github上开源项目几乎都采用CMake来维护,不会使用则寸步难行,学会CMake之后,其他的构建工具都简简单单,比如Premake。
- 学习CMake语法可以看看github上一个高赞教程:https://github.com/ttroy50/cmake-examples/tree/master
需要:
cmake --version
掌握CMake Tools: 强烈建议看看CMake Tools插件所指定的官方文档,进行学习。
简单来说,有了这个插件,你就不用编写task.json,launch.json
了。下面是一个简单的使用案例
创建一个文件夹,用VS Code打开,Ctrl+Shift+P
输入CMake,选择Quick Start
输入项目名称,比如HelloProject,然后选择C++项目
,可执行文件
这会创建一个基本的CMake示例项目,包含一个源文件main.cpp
、CMakeLists.txt
(它会告诉CMake Tools插件如何构建你的项目)
生成可执行文件之前,还需要做2步准备工作
在使用CMake Tools
扩展构建项目之前,您需要配置它以了解系统上的编译器。通过扫描“工具包”来完成这个配置。一个工具包代表一个工具链,这是用于构建项目的编译器、链接器和其他工具
打开命令面板(Ctrl+Shift+P)
,运行“CMake: Select a Kit
”。该扩展将自动扫描您计算机上的工具包,并创建找到的系统上的编译器列表。这里我们选择GCC 8.1.0
这个,路径太长,实际上这个就是g++.exe
你可以在侧边栏看到你选择的kits
注意,CMake默认是选择MSVC编译器(如果你有)。所以第一次,一定要手动选kit,如果你选择自动配置CMake项目,当CMake Tools看到CMakeLists.txt,就一顿操作给你build文件夹搞出来了,里面躺着一个.sln- - 。在你这一套配置走下来后,之后的自动配置就用的gcc了
这里的Variant也可以叫做变体,其实就是构建类型。一个Variant包含了构建项目的指令。默认情况下,CMake Tools扩展提供了四个Variant,分别对应于四种默认的构建类型:
要选择一个Variant,打开命令面板(Ctrl+Shift+P)
,运行“CMake: Select Variant
”命令。
这里我选择Debug
配置项目是指生成适用于选定kit
和variant
的构建系统所需的文件。这些文件包含构建项目所需的编译器、链接器、库等设置。一旦配置完成,您就可以继续使用其他 CMake 命令进行构建、编译、链接和调试该项目。
运行 CMake: Configure
命令来配置项目。这会产生一个build文件夹,里面放的是构建该项目所需要的所有配置信息。
终于可以build
了,运行CMake:Build
或者在下边栏点击这个生成(build)
,中文版翻译为生成,作用就是生成可执行文件,默认是build all
,因为大型项目可能有多个生成目标,可能有些是静态库、动态库、.exe,你可以选择只生成某一个,也可以生成所有。
在build里面可以找到.exe
文件,运行它即可
要运行和调试项目,请打开 main.cpp 并在 std::cout 行设置断点(F9
),然后打开命令面板运行 CMake: Debug
即可