1. 选择Clangd的原因
在C/C++的Extensions中,官方提供了C/C++ Extension Pack扩展包,对于不想麻烦的朋友只需要安装官方提供的一套扩展就可以搭建好C/C++的开发环境。
(当然你事先要在centos上安装gcc、g++、cmake等工具)
如下图所示

然而,这套扩展虽然能用,对比Clangd扩展来说体验不佳。
至于Clangd好在哪,现在火热的Jetbrains公司的Clion以及Vim上的Youcompleteme插件现在都在用它。代码的自动补全准确度、quix fix解决方案等等都完虐C/C++扩展。微软自己搞的这一个C/C++扩展,属实比不上clangd。所谓的这一个C/C++扩展大家应该很熟悉,就是下图这位:

2. Centos7环境的配置
CentOS7的配置与Ubuntu的配置难度完全不同,在Ubuntu 20.04LTS上只需要安装Clangd一个插件,即可完成环境的配置。Centos7难在哪呢?
2.1 llvm的编译安装
Centos7的gcc、libstdc++.so都太老了,gcc版本才4.8、安装clangd后,会提示glibc 2.18未安装。
有朋友可能会说,通过scl源安装新版的不就可以了?但事实没有那么简单,安装高版本的gcc编译器仍然解决不了glibc的问题,编译gblic 2.18需要gcc的版本高于7.0这一个条件可以通过安装scl的gcc 7.x版本解决,但是glibc是不能轻易替换的,否则服务器中跑的程序有可能直接跑不起来了。
因此:另辟蹊径。
参考大佬的文章,可以编译LLVM(其中包含了clangd)低版本的:Centos7 打造 C/C++ 开发环境_thewangcj的博客-优快云博客_centos7 安装c++环境l
但是在实操过程中还是遇到了编译不了的情况,最后发现大佬的文章,是直接编译高版本的llvm,不考虑低版本gcc的兼容性,实测clangd作为一个server与gcc编译的项目关系不大,而且很好用。
Centos7上源码编译安装llvm 11.0.0 - 知乎
编译过程简述如下:
1. 通过scl安装新版的gcc 7.3
2. 将bash环境切换到gcc 7.3
3. 编译安装llvm 11.

本文详细讲述了在CentOS 7环境下,为何选择Clangd替代C/C++ Extension Pack,并介绍了如何编译安装LLVM 11.0.0以解决兼容性问题,以及如何配置Clangd插件以优化C++开发体验,包括clang-tidy规则设置。
最低0.47元/天 解锁文章
5882

被折叠的 条评论
为什么被折叠?



