我已经多次尝试使用 CMake 来构建 ccls,并且我已经给出了,所以如果有人有办法做到这一点,那将会非常有帮助。
我使用的是 Fedora Linux,我正在使用存储库来获取 ccls,因为预构建的二进制文件不起作用。
如有任何帮助,我们将不胜感激。谢谢。
为了让它在 Fedora 上工作(我不明白为什么它不能在其他 Linux 发行版上工作),这就是我一步一步做到的:
快速说明:您可能需要使用
sudo yum install clang-devel
和 sudo yum install llvm-devel
,因为它们可能包含所需的依赖项。另请确保您已按照 ccls wiki 上的说明下载了所需的其他内容。
首先,我使用
git clone --depth=1 --recursive https://github.com/MaskRay/ccls
将存储库克隆到文件夹中。
其次,我进入 ccls 文件夹并使用
cmake .
。它构建了所需的东西。
第三,我使用
make
命令来完全构建存储库并生成 ccls 可执行文件。
然后我在主目录中创建了一个 bin 目录,并将 ccls 可执行文件移入其中。
然后我进入 .bashrc 将 ccls 添加到系统路径,并将行
export PATH="/home/$USER/bin:$PATH"
添加到 bashrc 的最后一行。然后退出文件并使用source ~/.bashrc
强制重置
最后我将 ccls 语言服务器设置添加到 coc 配置中:
{
"languageserver": {
"ccls": {
"command": "ccls",
"filetypes": ["c", "cpp", "cuda", "objc", "objcpp"],
"rootPatterns": [".ccls-root", "compile_commands.json"],
"initializationOptions": {
"cache": {
"directory": ".ccls-cache"
},
"client": {
"snippetSupport": true
}
}
}
}
}
或者,您可以(如果您使用的是 coc)在 vim 或 nvim 中使用
CocInstall coc-clangd
,这是一种获得类似于 ccls 的编程方式。
我从 OpenSuse 移植了一个 rpm 包。您可以在 copr alexfanqi 的 copr 存储库 上找到它。