免责声明:我对VS Code完全了解,所以请对我温柔。 :-)
我正在尝试为 C ++ 设置VS Code。
但是,我明确希望进行设置,以便在处理C ++文件时使用Language Server Protocol与clangd
进行通信。
我已经在我的(Ubuntu Linux)系统上安装了clangd
,并且在VS Code市场上安装了官方的"vscode-clangd"扩展,并且还调整了它的设置,以便{它。
但是,现在我迷路了。
当我打开clangd
或*.cpp
文件时,VS Code向我推荐了其他一些扩展名(例如,具有IntelliSense支持的官方Microsoft "C/C++"扩展名),但是我看不到{{1 }}确实对我有帮助。
使用Microsoft的“ C / C ++”扩展名似乎可以立即使用,但是如何使用*.hpp
?
感谢您的帮助。
答案 0 :(得分:0)
它无需任何配置即可工作。
我已经在Windows上对其进行了测试,并且可以正常工作-我在Visual Studio Code中没有安装C / C ++扩展名,只是vscode-clangd
,它会报告错误,提供代码完成等信息。
这意味着扩展有效,因为“核心” Visual Studio Code中没有此类功能。
Visual Studio Code仍然建议使用流行的C / C ++扩展,但是您可以忽略它,但这并不意味着vscode-clangd
无法正常工作。
请注意,您正在编辑的文件必须具有.cpp
或.c
之类的标准扩展名,才能被vscode-clangd
识别并执行。
有关所有受支持的扩展名的列表,请参见the extension's source code。
对于简单的项目,没有配置可能就足够了,但是对于更复杂的项目,您当然需要让Clang知道诸如目录,编译标志之类的内容。
这可以通过创建一个compile_flags.txt
文件来完成,您在其中键入Clang的参数,每行一个。
您可以将此文件与源文件放在同一文件夹中,也可以放在树的任何位置。
编辑此文件后,必须重新启动Visual Studio Code,以使更改生效。
或者,您可以创建(或让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。