一、 工具链安装
-
安装 Zed Editor
- 下载地址页 Zed Editor
-
安装 CMake
- 下载地址页 CMake
-
安装 MinGW-w64
- 下载地址页 w64devkit
-
配置以上工具链到系统Path变量
- 开始菜单搜索
编辑系统环境变量 - 点击右下角
环境变量 - 双击下方系统变量栏中的
Path - 通过点击
新建再点击浏览的方式即可添加路径到Path变量 - 将上面安装的CMake和MinGW里的bin文件夹逐一添加即可
- 开始菜单搜索
-
测试环境
- 在桌面右键,选择
在终端中打开 - 分别输入以下两条指令测试是否能正常显示版本信息
shellg++ -v //测试g++是否可用,可用的话输出版本信息 cmake -version //测试cmake是否可用,可用的话输出版本信息 - 在桌面右键,选择
如果正常的话显示效果应该与下图类似

二、项目结构创建
2.1 基本项目创建(以 hello world 为示例)
- 创建一个目录作为
Zed的工作目录( 例如 workspace 文件夹),用 Zed 编辑器打开。 - 新建一个目录用于存放项目(例如 helloworld )
- 新建 main.cpp 文件写入测试代码
cpp
#include <iostream>
int main() {
std::cout << "hello world!" << std::endl;
return 0;
}
正常情况下下方会自动安装 clang 语言支持服务,但此时会有找不到标准库与项目头文件等问题,莫慌,看下文。
2.1 CMAKE 项目配置与编译数据库的生成
clang LSP 正常情况下是无法正常识别多文件项目的文件的,g++ 直接编译多文件项目也很麻烦,因此我们于此引入 CMAKE 进行项目管理并生成项目构建数据库供 clang 的语法补全使用。
- 在根文件夹(例如workspace)创建一个.zed文件夹
- 在项目目录创建
CMakeLists.txt文件,(具体 CMAKE 使用此处限于篇幅不赘述了,仅给出一个示例)
cmake
cmake_minimum_required(VERSION 3.29)
project(helloworld)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_BUILD_TYPE Debug)
add_executable(helloworld main.cpp)
注意 :重点是在于添加set(CMAKE_EXPORT_COMPILE_COMMANDS ON),这行的意思是要求 CMAKE 导出编译命令数据
- 在
.zed文件夹中新建tasks.json文件,写入以下任务
json
[
{
"label": "CMAKE Build",
"command": "cmake",
"args": [
"-DCMAKE_BUILD_TYPE=Debug",
"-G",
"'MinGW Makefiles'",
"-S",
"$ZED_DIRNAME",
"-B",
"$ZED_DIRNAME/cmake-build-debug"
],
"use_new_terminal": false,
"allow_concurrent_runs": false,
"reveal": "always",
"reveal_target": "dock",
"hide": "never",
"shell": "system"
}
]
其中$ZED_DIRNAME/cmake-build-debug,是用于给 CMAKE 执行构建工作的文件夹,生成的编译数据库与与后面编译时生成的可执行文件都会在其中。
之后编写CMakeList.txt后,点击F4按键,选择task里的CMAKE Build即可
2.2 clangd 的配置与编译数据库的加载
- 点击左上角
三条杠->Zed->Open Settings打开设置,点击右上角Edit in settings.json打开配置文件 - 在最后一个花括号前增加以下内容读取CMAKE输出的编译数据库(设置编译数据库所在的文件夹为上文设置的
$ZED_DIRNAME/cmake-build-debug)
json
, //这个逗号要加在倒数第二个花括号后
"lsp": {
"clangd": {
"binary": {
"arguments": ["--compile-commands-dir=$ZED_DIRNAME/cmake-build-debug"]
}
}
}
- 此时正常就可以读取到项目内由 CMAKE 管理的库和头文件了
- 但 clangd 在 windows下默认不读取 gcc和g++的库,因此如果你没有安装
Visual Studio之类的工具的话,此时 clangd 很可能会提示标准库头文件不存在,因此需要在根目录(workspace)中新建.clangd配置文件,在其中写入以下内容,设置 clangd 使用MinGW
yaml
CompileFlags:
Add:
- --target=x86_64-w64-windows-gnu
- 如果编写时候没有语法高亮可以手动在右下角将语言设置为
yaml,Zed会自动下载语言服务 - 此时 clangd 就可以正常检测到项目文件和标准库头文件了
三、调试与运行
- Zed 和 VS Code 类似,也是要通过一个json文件来配置调试环境的。
- 由于我们使用了CMAKE,因此实际的构建命令就不是g++而是make了,但是windows没有make命令,mingw提供了名为"mingw32-make"的命令作为替代。
- 因此我们编辑构建指令如下
json
"build": {
"command": "mingw32-make",
"args": ["-C", "$ZED_DIRNAME/cmake-build-debug"],
"cwd": "$ZED_DIRNAME"
},
- 构建后设置可执行文件路径和用于调试的调试适配器
json
[
{
"label": "(CPP) Make And Debug",
"build": {
"command": "mingw32-make",
"args": ["-C", "$ZED_DIRNAME/cmake-build-debug"],
"cwd": "$ZED_DIRNAME"
},
"program": "$ZED_DIRNAME/cmake-build-debug/$ZED_STEM.exe",
"request": "launch",
"adapter": "CodeLLDB",
"stopAtBeginningOfMainSubprogram": true
}
]
- 在
.zed文件夹中新建debug.json文件,写入以上内容保存 - 再回到项目代码中,点击
F4键,在Debug中选择(CPP) Make And Debug即可使用调试器调试并运行 - (如果 CodeLLDB 下载失败的话可以挂梯子或者改用 GDB 适配器尝试)