本文主要介绍如何编译、安装 ccls

ccls是符合微软 LSP标准 的C/C++ language server。
ccls能够提供更好的跳转定义/引用、代码补全、符号搜索和重命名等功能,我们赶紧安装ccls来体验吧!

检出代码

1
git clone --depth=1 --recursive https://github.com/MaskRay/ccls

安装依赖

编译安装

1
2
3
4
cd ccls
cmake . -DCMAKE_PREFIX_PATH=/usr/local/ -DCMAKE_CXX_COMPILER=/usr/local/gcc-7.2.0/bin/g++ -DCMAKE_CXX_LINK_FLAGS="-Wl,-rpath,/usr/local/gcc-7.2.0/lib64 -L/usr/local/gcc-7.2.0/lib64"
make -j$(nproc)
sudo make install

注意根据新版本GCC的安装目录调整上面的cmake命令参数。

使用

vscode安装相应的ccls插件即可。
spacemacs中添加lsp layer,指定c-c++-backend为lsp-ccls即可。

1
2
3
4
5
6
7
8
dotspacemacs-configuration-layers
'(
 ;;c-c++
 (c-c++ :variables
        c-c++-backend 'lsp-ccls
        c-c++-default-mode-for-headers 'c++-mode)
 ;; other layers
)

compile_commands.json

虽然ccls支持 .cclscompile_commands.json来配置项目,不过后者能够提供更准确的编译信息。
具体可以参考 生成compile_commands.json文件 的说明,基于makefile的旧项目也可以生成。

参考链接