基于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-bin EULA / 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 进行许可。