如何使用clangd支持为C ++设置VS Code?

问题描述 投票:2回答:1

免责声明:我完全了解VS Code,所以,请对我温柔。 :-)

我正在尝试为C ++设置VS Code。 但是,我明确地想要设置它,以便它在处理C ++文件时使用Language Server Protocolclangd进行通信。

我已经在我的(Ubuntu Linux)系统上安装了clangd和VS Code市场的官方"vscode-clangd"扩展,我也调整了它的设置,以便它可以找到clangd

但是,现在我迷路了。 当我打开*.cpp*.hpp文件时,VS Code推荐了一些其他扩展程序(例如支持IntelliSense的官方Microsoft "C/C++"扩展),但我不知道clangd在哪里以及如何帮助我。

使用微软的“C / C ++”扩展似乎开箱即用,但我如何使用clangd

谢谢你的帮助。

c++ visual-studio-code clang language-server-protocol
1个回答
0
投票

它应该没有任何配置工作。我在Windows上测试了它,它工作正常 - 我没有在Visual Studio代码中安装C / C ++扩展,只是vscode-clangd它报告错误,提供代码完成等等。这意味着扩展工作,因为没有这样的功能在“核心”Visual Studio代码中。 Visual Studio Code仍然建议使用流行的C / C ++扩展,但你可以忽略它,这并不意味着vscode-clangd不起作用。

请注意,您正在编辑的文件必须具有.cpp.c等标准扩展名才能被vscode-clangd识别并执行。有关所有支持的扩展名列表,请参阅the extension's source code

对于简单的项目,没有配置可能就足够了,但对于更复杂的项目,你当然需要让Clang知道诸如包含目录,编译标志等内容。这可以通过创建一个compile_flags.txt文件来完成,你输入的参数为Clang,每行一个。您可以将此文件放在与源文件相同的文件夹中,也可以放在树的任何位置。编辑此文件后,必须重新启动Visual Studio代码,以使更改生效。

或者,您可以创建(或让CMake生成)compile_commands.json文件。它具有以下语法:

[
  { "directory": "/home/user/llvm/build",
    "command": "/usr/bin/clang++ -Irelative -DSOMEDEF=\"With spaces, quotes and \\-es.\" -c -o file.o file.cc",
    "file": "file.cc" },
  ...
]

有关详细信息,请参阅Clang docs

© www.soinside.com 2019 - 2024. All rights reserved.