之前在Mac系统下使用ccls+Nox体验很好,很流畅。但是在Windows系统上ccls又是出奇的难安装,试过很多方法都没成功。编译llvm+msvc 和 msys2下都试过,但各种出错。 最近在新机器上再次尝试了msys2下编译的方法,竟然成功了。
在此分享一下安装的过程和注意点,希望能帮到更多的新人体验ccls:
- 安装choco,这个相当于windows下包管理器,很好用。
- 执行以下命令通过choco 安装msys2(注意choco需要以管理员模式启动cmd或者powershell)
choco install msys2
- 启动msys2的 mingw64,默认路径为:
C:\tools\msys64\mingw64.exe
- 在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相关的工具
- 下载ccls
git clone --depth=1 --recursive https://github.com/MaskRay/ccls
cd ccls
- 编译ccls
cmake -H. -BRelease -G Ninja -DCMAKE_CXX_FLAGS=-D__STDC_FORMAT_MACROS
ninja -C Release
-
将ccls.exe 加入Path环境变量 例如:
C:\home\ccls\Release
-
然后就可以通过Emacs配置ccls了,我这里使用的是猫哥的Nox 。
其他注意事项:
-
我之前试过使用官网安装msys2 同样的依赖就是编译不过,但是用choco安装的这个版本就可以。目前不知道是什么原因。
-
同样的配置在另外一台机器就遇到了无法发现
/lib/libz3.dll.a
的问题,最终在官网issue找到解决方案。