# dependencies: cmake, clang, gcc, make, clang+llvm headers and libraries
sudo apt-get install cmake make gcc clang libclang-dev llvm-dev rapidjson-dev
git clone --depth=1 --recursive https://github.com/MaskRay/ccls
cd ccls
mkdir build && cd build
cmake ../ -BRelease -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=ON
cmake --build Release -j 32
sudo cp Release/ccls /usr/local/bin/
ccls
在使用时需要在项目的根目录中指定以下文件:
compile_commands.json
这个文件通常是自动生成,根据不同的编译系统命令不同,分别如下:
camke
cmake -H. -BDebug -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=YES
ln -s Debug/compile_commands.json .
Makefile
首先安装 bear
工具,用这个工具生成,命令如下:
bear make
ninja
# Format: ninja -t compdb rule_names... > compile_commands.json
ninja -C out/Release -t compdb cxx cc > compile_commands.json
.ccls
.ccls
中使用-I, -D
等指定头文件目录和宏定义,中间不能包含空格。示例如下:%compile_commands.json %c -std=c11 %cpp -std=c++14 %c %cpp -pthread
更多使用方法参见: Project Setup ,另外也整理了一下简单的用法,见 ccls 简单使用 。