基于clang打造高效的开发环境
在使用vscode进行C/C++开发过程中,一般就是直接使用gcc编译器(在windows中,它通常被称为MinGW-w64,一个gcc的移植版)、gdb调试器配合C/C++的插件来进行开发,也就是传统的gnu工具链中的组件。
但是vscode的C/C++的插件功能虽然齐全,响应速度却不够理想,于是本文介绍了使用LLVM工具链组件中的clang编译器来进行C/C++开发。
本文是在Archlinux的基础上搭建以clang作为编译器、lldb作为调试器的开发环境,windows可以通过额外配置WSL来搭建开发环境。
基础环境搭建
LLVM工具链包括clang编译器、lldb调试器、lld链接器等。
1.安装vscode
这里使用的是visual-studio-code-binEULA / aur。
1 | yay -S visual-studio-code-bin |
2.安装基础包
通过以下命令安装即可
1 | sudo pacman -S llvm clang lldb lld |
3.安装vscode相关插件
打开vscode插件市场,搜索clangd、CodeLLDB下载安装(如果因为网络问题下载失败,请尝试手动下载安装.vsix文件)。


运行、调试配置
1.创建配置文件
打开侧边框上的运行调试选项,点击create a launch.json file并选择LLDB,创建好.vscode文件夹下的launch.json配置文件

launch.json的初始内容如下,相关参数变量配置说明可访问官方文档
1 | { |
这里笔者将所有编译好的二进制文件输出到提前手动创建好的build文件夹(与源文件是同级目录),另外launch.json还需要配置tasks.json才能实现运行调试,tasks.json则是具体定义了编译的命令以及参数等。tasks.json可以手动在.vscode文件夹下创建。
最终配置如下
launch.json
1 | { |
tasks.json
1 | { |
使用快捷键Ctrl+F5运行代码,使用快捷键F5调试代码(需要先断点)。
到这里基本的运行、调试已经配置完成,但是这种方式需要提前在当前目录下手动创建好输出目录,否则无法成功执行任务。当然也可以直接选择将当前目录作为输出目录,但那样输出文件与源文件混杂在一起不方便处理。
基于这点,笔者这里提供了一种思路:使用Code Runner插件指定其编译命令,提供自动创建输出目录的功能(唯一的不便就是需要先执行Code Runner创建好目录之后,才能进行调试)。
因此下面介绍通过配置Code Runner插件,更改其默认的g++命令为clang++,并实现自动创建输出目录的功能。
2.Code Runner配置
首先下载安装好Code Runner的插件,在插件市场搜索Code Runner并安装

打开Code Runner的扩展配置,在搜索框中搜索code-runner.executorMap,点击Edit in settings.json打开settings.json配置文件。
在settings.json文件中修改对应的配置项中的g++为clang++,配置如下
1 | "code-runner.executorMap": { |
指定输出目录,例如输出到当前目录的build目录下(自动创建),则修改为以下配置
1 | "code-runner.executorMap": { |
更多参数配置说明可以参考官方仓库。
至此一个简单高效的、基于LLVM工具链中的clang编译器、lldb调试器的开发环境已经搭建完成。
补充:网上很多相关教程主要是通过CMake配合clang来构建项目,CMake的配置对于单文件编译运行调试来说相对繁琐,不太适合简单的小项目。在早期笔者参考相关教程配置时意识到了这个问题,另外鉴于C/C++插件在响应速度上实在不尽人意,于是有了这篇简易的文章。
参考资料
- 标题: 基于clang打造高效的开发环境
- 作者: Entropy Tree
- 创建于 : 2023-04-01 11:55:59
- 更新于 : 2023-04-01 21:15:42
- 链接: https://www.entropy-tree.top/2023/04/01/clang-env-build/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。