Windows系统安装ccls

之前在Mac系统下使用ccls+Nox体验很好,很流畅。但是在Windows系统上ccls又是出奇的难安装,试过很多方法都没成功。编译llvm+msvc 和 msys2下都试过,但各种出错。 最近在新机器上再次尝试了msys2下编译的方法,竟然成功了。

在此分享一下安装的过程和注意点,希望能帮到更多的新人体验ccls:

  1. 安装choco,这个相当于windows下包管理器,很好用。
  2. 执行以下命令通过choco 安装msys2(注意choco需要以管理员模式启动cmd或者powershell)
    choco install msys2
  3. 启动msys2的 mingw64,默认路径为:C:\tools\msys64\mingw64.exe
  4. 在mingw64 中安装以下依赖,参考ccls官网
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

注:我后续为了编译emacs28,还安装了emacs相关的工具

  1. 下载ccls
        git clone --depth=1 --recursive https://github.com/MaskRay/ccls
        cd ccls
  1. 编译ccls
cmake -H. -BRelease -G Ninja -DCMAKE_CXX_FLAGS=-D__STDC_FORMAT_MACROS
ninja -C Release
  1. 将ccls.exe 加入Path环境变量 例如: C:\home\ccls\Release

  2. 然后就可以通过Emacs配置ccls了,我这里使用的是猫哥的Nox

其他注意事项:

  1. 我之前试过使用官网安装msys2 同样的依赖就是编译不过,但是用choco安装的这个版本就可以。目前不知道是什么原因。

  2. 同样的配置在另外一台机器就遇到了无法发现/lib/libz3.dll.a的问题,最终在官网issue找到解决方案

用vs的话关键是要用 x64 Native Tools Command Prompt for VS 2019 来编译ccls