4

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

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

4

2 回答 2

3

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

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

我用

clang++ -E -xc++ - -Wp,-v < /dev/null

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

于 2020-06-28T15:48:21.053 回答
-1

操作,回答错误的问题。但对于那些使用ccls

  1. 在您的项目目录中创建一个.ccls文件并附--gcc-toolchain=/usr加到它。
  2. 使用此工具生成compile_commands.json文件

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

于 2021-07-24T05:50:54.060 回答