我可以使用 GCC 编译器和 Clangd 语言服务器吗?

Can I use GCC compiler AND Clangd Language Server?

我正在开发一个使用 GCC 库 (SFML) 的项目,据我所知,该库不适用于 clang。我将 COC 与 vim 一起用于代码补全,但对于 C++,它需要 clangd。有没有办法使用 GCC 作为我的编译器,但仍然使用 clangd 语言服务器?

我也听说有一种方法可以让 clang 识别 GCC libraries/headers,但我一直无法使它正常工作。如果有人能指出我正确的方向,那也会有帮助。但是我习惯了GCC(自从我开始编程C++就一直在使用它),所以能够使用clangd GCC会更可取。

是的。我用 ccls(也是基于 clang 的)来做的。

考虑到我安装的 clang 不是标准(我编译它,将它调整为默认使用 libc++,我将它安装在我个人的某个地方 space) 我必须注入 clang 已知但其他基于 clang 的工具未知的头文件的路径。

我用

获得它们
clang++ -E -xc++ - -Wp,-v < /dev/null

关于当前项目相关的其他选项,我保证有compile_commands.json 编译数据库(CMake生成,没有其他的自行承担选择),ccls 可以从那里工作。我希望 clangd 在这些方面非常相似。

哎呀,答错问题了。 但是对于那些使用 ccls:

  1. 在您的项目目录中创建一个 .ccls 文件并向其附加 --gcc-toolchain=/usr
  2. 使用this tool生成compile_commands.json文件

https://github.com/MaskRay/ccls/wiki/FAQ#compiling-with-gcc