1. 安装必要的工具和扩展
安装编译器
- Windows系统:可以安装MinGW - w64,它是一个支持Windows平台的GCC编译器集合。访问 MinGW - w64官网 下载安装包,按照安装向导进行安装,安装过程中注意选择合适的架构(如x86_64)和线程模型(如posix)。安装完成后,将其
bin
目录(如C:\mingw64\bin
)添加到系统环境变量PATH
中。 - Linux系统:大多数Linux发行版默认已经安装了GCC和G++编译器。如果没有安装,可以使用包管理器进行安装。例如,在Ubuntu系统中,打开终端并执行以下命令:
sudo apt update
sudo apt install build-essential
- macOS系统:可以安装Xcode Command Line Tools,打开终端并执行以下命令:
xcode-select --install
安装VSCode扩展
打开VSCode,在扩展市场中搜索并安装以下扩展:
- C/C++:由Microsoft提供,为C和C++开发提供语法高亮、智能提示、调试等功能。
2. 配置VSCode工作区
创建工作区文件夹
在本地磁盘上创建一个用于存放C和C++代码的文件夹,例如 C_CPP_Workspace
,然后在VSCode中通过 文件
-> 打开文件夹
打开该文件夹。
配置 tasks.json
文件
tasks.json
文件用于定义编译任务。在VSCode中,按下 Ctrl + Shift + P
(Windows/Linux)或 Cmd + Shift + P
(macOS)打开命令面板,输入 Tasks: Configure Task
,选择 Create tasks.json file from template
,然后选择 Others
。将生成的 tasks.json
文件内容替换为以下代码:
{"version": "2.0.0","tasks": [{"label": "Build C","type": "shell","command": "gcc","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"]},{"label": "Build C++","type": "shell","command": "g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}"],"group": {"kind": "build","isDefault": false},"problemMatcher": ["$gcc"]}]
}
这段代码定义了两个编译任务:Build C
用于编译C文件,Build C++
用于编译C++文件。
配置 launch.json
文件
launch.json
文件用于配置调试任务。按下 Ctrl + Shift + D
(Windows/Linux)或 Cmd + Shift + D
(macOS)打开调试面板,点击齿轮图标选择 C++ (GDB/LLDB)
,将生成的 launch.json
文件内容替换为以下代码:
{"version": "0.2.0","configurations": [{"name": "Launch C","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","preLaunchTask": "Build C","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]},{"name": "Launch C++","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}","args": [],"stopAtEntry": false,"cwd": "${fileDirname}","environment": [],"externalConsole": false,"MIMode": "gdb","preLaunchTask": "Build C++","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}]}]
}
这段代码定义了两个调试配置:Launch C
用于调试C文件,Launch C++
用于调试C++文件。在调试之前,会先执行对应的编译任务。
3. 测试配置
创建测试文件
在工作区文件夹中创建一个C文件(例如 test.c
)和一个C++文件(例如 test.cpp
),并编写简单的代码:
test.c
#include <stdio.h>int main() {printf("Hello, C!\n");return 0;
}
test.cpp
#include <iostream>int main() {std::cout << "Hello, C++!" << std::endl;return 0;
}
编译和运行
- 编译C文件:打开
test.c
文件,按下Ctrl + Shift + B
(Windows/Linux)或Cmd + Shift + B
(macOS),选择Build C
任务进行编译。编译成功后,在终端中输入./test
运行程序。 - 编译C++文件:打开
test.cpp
文件,按下Ctrl + Shift + B
(Windows/Linux)或Cmd + Shift + B
(macOS),选择Build C++
任务进行编译。编译成功后,在终端中输入./test
运行程序。
调试
- 调试C文件:打开
test.c
文件,点击调试面板的绿色三角形按钮,选择Launch C
配置进行调试。 - 调试C++文件:打开
test.cpp
文件,点击调试面板的绿色三角形按钮,选择Launch C++
配置进行调试。
为什么有时候需要指定 compilerPath
通常情况下,如果编译器已经正确安装并且其所在路径已经添加到系统的环境变量中,VSCode 的 C/C++ 扩展能够自动找到编译器,此时不指定 compilerPath
也可以正常工作。
然而,当编译器没有添加到环境变量,或者系统中有多个版本的编译器,你想明确指定使用某一个时,就需要在配置文件中手动指定 compilerPath
。
具体配置方法
配置 c_cpp_properties.json
要配置 compilerPath
,需要创建或编辑 c_cpp_properties.json
文件。你可以通过以下方式生成该文件:
在 VSCode 中,按下 Ctrl + Shift + P
(Windows/Linux)或 Cmd + Shift + P
(macOS)打开命令面板,输入 C/C++: Edit Configurations (UI)
并回车,之后点击界面右上角的“打开JSON文件”按钮,就会生成 c_cpp_properties.json
文件。
以下是一个包含 compilerPath
配置的示例:
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.19041.0","compilerPath": "C:/mingw64/bin/gcc.exe", // Windows 下 MinGW - w64 的 GCC 路径"cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-gcc-x64"}],"version": 4
}
对于不同的操作系统,compilerPath
的配置会有所不同:
- Windows:如果你使用的是 MinGW - w64,路径可能类似于
"C:/mingw64/bin/gcc.exe"
(C 编译器)和"C:/mingw64/bin/g++.exe"
(C++ 编译器)。 - Linux:一般情况下,GCC 和 G++ 已经在系统的环境变量中,
compilerPath
可以设置为"/usr/bin/gcc"
(C 编译器)和"/usr/bin/g++"
(C++ 编译器)。 - macOS:通常可以设置为
"/usr/bin/clang"
(C 编译器)和"/usr/bin/clang++"
(C++ 编译器)。
注意事项
- 当指定了
compilerPath
后,VSCode 的 C/C++ 扩展会使用你指定的编译器进行智能感知和代码分析。 - 如果你修改了
compilerPath
,可能需要重新加载 VSCode 或者重新打开项目,以使配置生效。