操作流程
1. 安装clangd
在vscode扩展商店中搜索clangd
,并下载如图扩展
注意:clangd智能提示与平常使用的C/C++插件的智能提示会产生冲突,需要在设置中关闭其一。这里我们选择关闭C/C++插件的智能提示
禁用C/C++智能提示
- 点击左下角齿轮图标,打开设置
- 搜索
C_Cpp: Intelli Sense Engine
,选择disabled
此时的clangd智能提示就可以使用了。clangd默认开启header-insertion,也就是当你使用一个未被引入的头文件中的成员时,clangd会在你使用自动补全后自动将其引入。如果你习惯使用万能头,那么自动引入头文件的功能最好关闭。
禁用clangd自动引用头文件
- 点击左下角齿轮图标,打开设置
- 搜索
Clangd: Arguments
- 选择添加项,添加
--header-insertion=never
- 按
ctrl
+shift
+p
,输入clangd: Restart language server
以重启clangd来应用更改
之后,我们需要指定clangd使用的编译工具
指定clangd使用的编译工具
- 打开设置并搜索
Clangd: Arguments
- 选择添加项,添加
--query-driver=C:/path/to/your/g*.exe
注意这里的路径要写自己的mingw的bin文件夹目录
最后,我们按照标准指定clangd的编译命令文件路径
指定clangd的编译命令文件路径
- 打开设置并搜索
Clangd: Arguments
- 选择添加项,添加
--compile-commands-dir=${workspaceFolder}/build
最后的效果应当是这样的
上述操作等价于填入settings.json
文件的代码:
"clangd.path": "C:/path/to/your/clangd.exe",
"clangd.arguments": [
"--query-driver=C:/path/to/your/g*.exe",
"--compile-commands-dir=${workspaceFolder}/build",
"--header-insertion=never"
]
2. 安装cmake
首先打开vscode扩展商店,搜索cmake
,并安装如图两个扩展
除此之外,我们还要前往官网下载cmake本体,选择适合自己的版本下载并安装。安装成功后,记好自己的cmake.exe
文件路径,或者直接将bin目录添加至环境变量也可以
完成以后,需要让cmake扩展知道你的cmake本体文件的位置。
设置Cmake Path
- 打开设置,搜索
Cmake: Cmake Path
- 将包含
cmake.exe
的完整路径填入其中
完成后如图所示(安装路径不同,填入的内容也不一样):
之后,我们要指定cmake生成器。由于我们使用mingw来编译C/C++文件,因此这里使用的是MinGW Makefiles
指定cmake生成器
- 打开设置,搜索
Cmake: Generator
- 填入
MinGW Makefiles
(若为linux环境则使用Unix Makefiles
)
完成后如图所示
3. 运行/调试项目
编写CMakeLists.txt文件
首先准备如下的项目结构:
- build:用于存放cmake的编译中间文件
- include:用于存放自己写的头文件
- src:用于存放自己写的源文件
要使用cmake来编译我们的项目,首先要编写CMakeLists.txt文件。我们先在项目文件夹下新建一个CMakeLists.txt
文件
之后,向该文件内写入如下内容(可以自行学习cmake的语法等知识)
cmake_minimum_required(VERSION 3.10.0)
project(project_name)
set(CMAKE_CXX_STANDARD 20)
include_directories(include)
aux_source_directory(./src CPP_FILES)
add_executable(
main ${CPP_FILES}
)
添加工具包
然后,在vscode左侧找到CMake,并将自己的gcc添加至工具包中
测试代码
保存该文件,之后我们随便写一些测试代码:
A.h
class A {
public:
void test();
};
A.cpp
#include "A.h"
#include <iostream>
void A::test() {
std::cout << "Hello world!" << std::endl;
}
main.cpp
#include "A.h"
int main() {
A a;
a.test();
return 0;
}
目录结构:
点击vscode下方的小三角按钮运行,边上的小虫是debug按钮
注意:不以debug运行将会忽略断点
程序完美运行: