免责声明:我完全了解VS Code,所以,请对我温柔。 :-)
我正在尝试为C ++设置VS Code。
但是,我明确地想要设置它,以便它在处理C ++文件时使用Language Server Protocol与clangd
进行通信。
我已经在我的(Ubuntu Linux)系统上安装了clangd
和VS Code市场的官方"vscode-clangd"扩展,我也调整了它的设置,以便它可以找到clangd
。
但是,现在我迷路了。
当我打开*.cpp
或*.hpp
文件时,VS Code推荐了一些其他扩展程序(例如支持IntelliSense的官方Microsoft "C/C++"扩展),但我不知道clangd
在哪里以及如何帮助我。
使用微软的“C / C ++”扩展似乎开箱即用,但我如何使用clangd
?
谢谢你的帮助。
它应该没有任何配置工作。我在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。