文章目录

ccls

ccls 是一个优秀的 c/c++ 语言自动补全服务端程序。虽然之前在 windows 上成功编译过一次,但是由于当时没记录下来,导致本次编译出错一时想不起来了。所以说好记性不如烂笔头是有道理的。

编译环境

这里还是以 ccls wiki 推荐的 msys2 环境进行编译。

msy2 安装

直接安装

这个没啥好说的,直接下载安装文件。一步一步走就行了。不过最好将源设置成国内的,可以加速下载相关包

Chocolatey 安装

通过软件管理工具安装,这个也本文是推荐方式。假设已安装好 Chocolatey, 那么就可以通过以下命令安装 msys2:

choco install msys2

安装完之后放在 C:\tools\ 下,因此最好将其下相关的 bin 加入环境变量里面去。

安装依赖

pacman -S mingw-w64-x86_64-clang mingw-w64-x86_64-clang-tools-extra mingw64/mingw-w64-x86_64-polly mingw-w64-x86_64-cmake mingw-w64-x86_64-jq mingw-w64-x86_64-ninja mingw-w64-x86_64-ncurses mingw-w64-x86_64-rapidjson

编译 ccls

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

cmake -H. -BRelease -G Ninja -DCMAKE_CXX_FLAGS=-D__STDC_FORMAT_MACROS
ninja -C Release

问题

在最后一步通常会报错,具休就是说 libz3 库找不到。

解决

Release/build.ninja 中关于 libz3 的两个路径改为绝对路径即可。

Reference

https://github.com/MaskRay/ccls/wiki/Build

https://github.com/MaskRay/ccls/issues/503