C/C++编译
一、安装编译器(MinGW-w64)
1. 下载与安装
-
64位下载 :MinGW-w64 x86_64
-
解压到 新目录 (如
D:\mingw64
,路径禁止中文/空格)
2. 配置环境变量
- 系统变量 →
Path
→ 新增: 例:D:\mingw64\bin - 验证 :命令行输入
gcc --version
或g++ --version
,显示版本号即成功
二、编译配置与运行
1. 单文件单独编译
1.1 首文件
-
新建
main.c
,代码:c例: #include <stdio.h> int main() { printf("C单文件编译成功!\n"); }
新建
main.cpp
,代码:c例: #include <stdio.h> int main() { printf("C单文件编译成功!\n"); }
-
C/C++插件配置
-
创建执行任务(tasks.json)
-
自动生成
tasks.json
(配置清单与项目的中间商):json{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe 生成活动文件", "command": "C:/mingw64/bin/gcc.exe", //这里是指定编译器 "args": [ "-fdiagnostics-color=always", "-g", "${file}", //被编译的文件 "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" //指定生成的可执行文件的路径(默认鼠标所在文件路径) ], "options": { "cwd": "C:/mingw64/bin" }, "problemMatcher": [ "$gcc" ], "group": "build", "detail": "编译器: C:/mingw64/bin/gcc.exe" } ] }
- 运行生成任务
Ctrl+`:打开终端窗口
1.2 新增文件
当需要添加新代码文件时,可根据代码管理需求选择以下两种方式:
方法1:在当前项目中直接新建文件
适用场景:新增文件与现有文件属于同一项目,无需单独文件夹管理。
方法2:新建独立文件夹以管理代码
适用场景:新增代码需独立管理(如不同项目、版本或模块)。
-
创建新文件夹
- 在磁盘中新建文件夹(如
test
)→ 打开VSCode → 点击 【文件】→【打开文件夹】 选择新文件夹。
- 在磁盘中新建文件夹(如
-
复制配置文件
- 将原项目中
.vscode
目录(含tasks.json
、c_cpp_properties.json
等)拷贝到新文件夹中。
- 将原项目中
-
新建、编写、执行
详见 '1.1首文件'
2. 多文件联合编译
适用场景 :项目包含多个源文件(如 main.c
+ utils.c
),需编译为一个可执行程序。
-
打开工程文件夹
- 在VSCode中点击 【文件】→【打开文件夹】 ,选择
multiple_files
目录。
- 在VSCode中点击 【文件】→【打开文件夹】 ,选择
-
复用旧项目配置
- 拷贝旧项目中
.vscode
文件夹(含tasks.json
、c_cpp_properties.json
等)到当前工程根目录。
- 拷贝旧项目中
-
改造 tasks.json 配置
-
目标 :编译所有
.c
文件,统一生成可执行程序。 -
关键修改 :
json"args": [ "-g", "${workspaceFolder}\\*.c", // 匹配工作区所有 .c 文件 "-o", "${workspaceFolder}\\${workspaceRootFolderName}.exe" // 动态获取工作区文件夹名 // "${workspaceFolder}\\myProgram.exe" 固定输出自定义文件名 ]
json"args": [ "-g", "${workspaceFolder}\\*.cpp", // 匹配工作区所有 .cpp 文件 "-o", "${workspaceFolder}\\${workspaceRootFolderName}.exe" // 动态获取工作区文件夹名 // "${workspaceFolder}\\myProgram.exe" 固定输出自定义文件名 ]
-
-
新建、编写、执行
详见 '1.1首文件'
三、调试配置(launch.json)
1. 创建launch.json文件
-
打开调试面板:
- 点击VSCode左侧的调试图标(或使用快捷键
Ctrl+Shift+D
),点击"创建launch.json文件"。
- 点击VSCode左侧的调试图标(或使用快捷键
-
选择调试配置:
- 在弹出的选项中选择 【C++(GDB/LLDB)】 。
-
添加调试配置:
- 生成
launch.json
文件后,点击文件右下方的 【添加配置】 ,选择 【C/C++:(gdb)启动】 。
- 生成
2. 配置launch.json文件
-
默认配置:
json{ "name": "C/C++: (gdb) 启动", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "gdb" }
-
修改配置:
json{ "name": "C/C++: (gdb) 启动", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", //指定可执行程序路径:确保与 tasks.json 中生成的可执行文件路径匹配。 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe" //指定调试器路径:修改为实际的调试器路径,需根据实际安装路径调整。 }
json{ "name": "C/C++: (gdb) 启动", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}\\${workspaceRootFolderName}.exe", //指定可执行程序路径:确保与 tasks.json 中生成的可执行文件路径匹配。 "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe" //指定调试器路径:修改为实际的调试器路径,需根据实际安装路径调整。 }
3. 开始调试
当launch.json
文件配置完成后,即可开始调试:
-
设置断点:
- 在代码行号左侧单击或使用快捷键 F9 插入断点。
-
启动调试:
- 按 F5 开始调试,程序会在断点处暂停。
-
调试快捷键:
- F10:逐过程调试(跳过函数内部)
- F11:逐语句调试(进入函数内部)
-
查看调试信息:启动调试后,可通过监视窗口查看变量值、调用栈等程序执行过程中的信息。