前言
在C/C++开发中,如果使用vscode作为开发平台的话,相信大家都会安装C/C++扩展,在remote到远程一个机器上开发时,C/C++扩展提供的自动补全等功能总是慢一拍,这让我感觉很不舒服,时间就了就人忍不下去了,clangd或许是一个更好的选择。
clangd相比与C/C++扩展有什么优势呢?
- 更好的错误提示和补全功能:clangd基于Clang编译器,能够提供更准确和友好的错误提示,而且具有更强大的自动补全功能,相比于C/C++扩展,能够提供更好的代码补全和语义分析[0][6]。
- 更好的调试体验:lldb+clangd扩展结合了LLDB调试器和clangd的能力,能够提供强大的调试功能。通过配置VSCode的调试环境,可以使用LLDB进行调试,并且能够在调试过程中查看变量值、表达式求值等[6]。
- 更好的语言支持:lldb+clangd扩展基于clangd,能够提供更好的C/C++语言支持。由于clangd是基于Clang编译器的,因此能够支持最新的C/C++语言特性和标准[0]。
- 更灵活的配置选项:通过对lldb+clangd扩展的配置,可以根据个人需求进行调整,例如调试器类型、启动程序、工作目录等[6]。
- 更好的社区支持:lldb+clangd扩展有一个活跃的开发和支持社区,可以及时解决问题和提供帮助[0]。
vscode扩展lldb+clangd相比于C/C++扩展具有更好的错误提示和补全功能、更强大的调试体验、更好的语言支持、更灵活的配置选项和更好的社区支持。这些优势使得lldb+clangd成为一个强大的工具链,能够提高C/C++开发的效率和质量。
网上搜索的教程,都是扔几个配置json文件,几个文字就省略完了,看的云里雾里,所以自己又重新总结了一下,把步骤重新梳理了一下,希望能有所帮助。
环境配置
本教程使用win10remote到wsl2:Debian系统上,其他linux系统也是可以的,ubuntu20.04我之前试的时候,调试功能有点问题,不知道是不是我系统的原因,所以选择wsl时可以尽量避开这个系统。
1. 依赖安装
我们需要在我们的linux系统上安装4个依赖:clang+clangd+lldb+cmake
clang
:Clang是一种用于C、C++和Objective-C编程语言的编译器前端。它被设计为一个快速、高效和高度可定制的编译器,提供出色的诊断和错误信息。Clang是LLVM项目的一部分,LLVM是一个模块化和可重用的编译器和工具链技术集合。Clang在工业界被广泛使用,以其对语言标准的遵循和对生成高质量代码的关注而闻名。
clangd
:clangd是一个基于Clang编译器的语言服务器,用于提供C/C++语言的代码补全、语义分析和代码导航等功能。它可以与各种编辑器和集成开发环境(IDE)集成,例如Visual Studio Code(VSCode),提供更好的代码编辑和开发体验。clangd通过解析源代码并构建语法树和语义图来理解代码,并根据用户的输入提供相关的代码建议和信息。它还支持跳转到定义、查找引用、重构等功能,帮助开发人员更高效地编写和维护C/C++代码。
lldb
:lldb是一个开源的调试器,用于调试C、C++、Objective-C和Swift等编程语言的应用程序。它是在LLVM项目的基础上开发的,提供了强大的调试功能和交互式命令行界面。lldb支持断点设置、变量查看、堆栈跟踪、表达式求值等调试操作,可以帮助开发人员定位和修复应用程序中的错误。它还支持多种平台和架构,并且可以与各种集成开发环境(IDE)和编辑器集成,提供更好的调试体验。
cmake
:CMake是一个跨平台的开源构建工具,用于管理和自动化软件项目的构建过程。它使用简单的语法和配置文件来描述项目的构建规则,并生成适用于不同操作系统和编译器的构建脚本。CMake可以生成各种构建系统的配置文件,如Makefile、Ninja、Visual Studio等,使得项目可以在不同的开发环境中进行构建。CMake还提供了丰富的功能,如依赖管理、模块化构建、自定义构建选项等,使得项目的构建过程更加灵活和可扩展。它被广泛应用于各种软件项目的构建和跨平台开发。
Linux系统中,安装以上依赖:
sudo apt install clang clangd lldb cmake
有的系统可能需要yum
或者homebrew
来安装,具体的可以自己查一下。
2. vscode插件安装
在vscode中,我们需要安装以下四个插件
其中,安装CodeLLDB时会有个文件安装失败,我们需要手动下载下来这个文件
然后点击install from VSIX...
然后选择已经下载的vsix文件的路径,安装即可。
安装完成后,重新启动
配置lldb+clangd环境
1. Cmake快速创建工程
(1)随便打开或者创建一个空的文件夹,快捷键ctrl+shift+p
,输入命令
Cmake:Quick Start
(2)选择clang编译器
(3)不选择cmakelist文件
(4)填写项目名称
(5)创建C++项目
(6)选择可执行程序
(7)这样,cmake就直接帮我们创建了一个项目,并创建了main.cpp
2. 设置clang编译目录
(1)选择左下角setting
(2)选择workspace,搜索clang,在Arguments一栏,点击Add item,并输入参数
--compile-commands-dir=${workspaceFolder}/build
(3)这时候,.vscode文件夹下面会多出一个setting.json文件,里面是我们刚才写的配置
3. 编译+运行+调试
然后我们点击main.cpp,然后点下面的Build进行编译,会得到一个可执行程序,位于build目录下,然后我们按F5运行,会报出一个错误,找不到launch.json,然后.vscode下面会自动多出一个launch.json,
我们修改launch.json,将program参数,修改为我们可执行程序的路径
这时候,再按F5就可以运行了,终端上成功的打出了hell world.
还可以添加断点进行调试,
到这里,我们就傻瓜式的搭建了一个C/C++开发环境,以后就可以舒服的写代码啦,clangd还有许多其他特性,搭建完这个开发环境,就可以慢慢探索啦。
《C++ Primer》
和《Effective C++》
是C++开发者必不可少的书籍,如果你想入门C++,以及想要精进C++开发技术,这两本书可以说必须要有。此外,《Linux高性能服务器编程》以及《Linux多线程服务端编程:使用muduo C++网络库》.(陈硕)》
是快速提高你的linux开发能力的秘籍。《大话设计模式》
可以增强我们的模型提取及设计能力,写出更优雅的代码。同时,《操作系统导论》更是开发必读书目,在网上搜索相关资源也要花费一些力气,需要的同学可以关注公众号【程序员DeRozan】,回复【1207】快速免费领取~