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

Tha*_*kle 9 vim gcc clang clangd

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

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

Luc*_*tte 5

是的。我使用 ccls (也是基于 clang 的)来完成此操作。

鉴于我安装的 clang 不是标准的(我编译它,默认情况下将其调整为使用 libc++,然后将其安装在我的个人空间中的某个位置),我必须注入 clang 已知但其他基于 clang 未知的头文件的路径工具。

我用以下方法获得它们

clang++ -E -xc++ - -Wp,-v < /dev/null
Run Code Online (Sandbox Code Playgroud)

关于与当前项目相关的其他选项,我确保有一个compile_commands.json 编译数据库(由 CMake 生成,或者如果我没有其他选择则承担),并且 ccls 可以从那里工作。我希望 cland 在这些方面非常相似。