无痛VSCode+clangd+lldb+cmake配置C/C++开发环境

前言

在C/C++开发中,如果使用vscode作为开发平台的话,相信大家都会安装C/C++扩展,在remote到远程一个机器上开发时,C/C++扩展提供的自动补全等功能总是慢一拍,这让我感觉很不舒服,时间就了就人忍不下去了,clangd或许是一个更好的选择。
clangd相比与C/C++扩展有什么优势呢?

  1. 更好的错误提示和补全功能:clangd基于Clang编译器,能够提供更准确和友好的错误提示,而且具有更强大的自动补全功能,相比于C/C++扩展,能够提供更好的代码补全和语义分析[0][6]。
  2. 更好的调试体验:lldb+clangd扩展结合了LLDB调试器和clangd的能力,能够提供强大的调试功能。通过配置VSCode的调试环境,可以使用LLDB进行调试,并且能够在调试过程中查看变量值、表达式求值等[6]。
  3. 更好的语言支持:lldb+clangd扩展基于clangd,能够提供更好的C/C++语言支持。由于clangd是基于Clang编译器的,因此能够支持最新的C/C++语言特性和标准[0]。
  4. 更灵活的配置选项:通过对lldb+clangd扩展的配置,可以根据个人需求进行调整,例如调试器类型、启动程序、工作目录等[6]。
  5. 更好的社区支持: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中,我们需要安装以下四个插件

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第1张图片

其中,安装CodeLLDB时会有个文件安装失败,我们需要手动下载下来这个文件
无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第2张图片
然后点击install from VSIX...
无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第3张图片
然后选择已经下载的vsix文件的路径,安装即可。

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第4张图片
安装完成后,重新启动

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第5张图片

配置lldb+clangd环境


1. Cmake快速创建工程


(1)随便打开或者创建一个空的文件夹,快捷键ctrl+shift+p,输入命令
Cmake:Quick Start

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第6张图片
(2)选择clang编译器

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第7张图片
(3)不选择cmakelist文件

(4)填写项目名称


(5)创建C++项目

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第8张图片
(6)选择可执行程序

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第9张图片

(7)这样,cmake就直接帮我们创建了一个项目,并创建了main.cpp
无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第10张图片



2. 设置clang编译目录


(1)选择左下角setting

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第11张图片
(2)选择workspace,搜索clang,在Arguments一栏,点击Add item,并输入参数

--compile-commands-dir=${workspaceFolder}/build

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第12张图片

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第13张图片
(3)这时候,.vscode文件夹下面会多出一个setting.json文件,里面是我们刚才写的配置



3. 编译+运行+调试


然后我们点击main.cpp,然后点下面的Build进行编译,会得到一个可执行程序,位于build目录下,然后我们按F5运行,会报出一个错误,找不到launch.json,然后.vscode下面会自动多出一个launch.json,

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第14张图片
我们修改launch.json,将program参数,修改为我们可执行程序的路径

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第15张图片

这时候,再按F5就可以运行了,终端上成功的打出了hell world.

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第16张图片

还可以添加断点进行调试,
无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第17张图片

无痛VSCode+clangd+lldb+cmake配置C/C++开发环境_第18张图片

到这里,我们就傻瓜式的搭建了一个C/C++开发环境,以后就可以舒服的写代码啦,clangd还有许多其他特性,搭建完这个开发环境,就可以慢慢探索啦。

《C++ Primer》《Effective C++》是C++开发者必不可少的书籍,如果你想入门C++,以及想要精进C++开发技术,这两本书可以说必须要有。此外,《Linux高性能服务器编程》以及《Linux多线程服务端编程:使用muduo C++网络库》.(陈硕)》是快速提高你的linux开发能力的秘籍。《大话设计模式》可以增强我们的模型提取及设计能力,写出更优雅的代码。同时,《操作系统导论》更是开发必读书目,在网上搜索相关资源也要花费一些力气,需要的同学可以关注公众号【程序员DeRozan】,回复【1207】快速免费领取~

你可能感兴趣的:(VSCode,vscode,c语言,c++,lldb,clangd)