- 免责声明:我对VS代码完全是新手,所以,请对我温柔点。:-)*
我正在尝试为**C++**设置VS Code。
但是,我明确地希望设置它,以便它在处理C++文件时使用Language Server Protocol与clangd
通信。
我已经在我的(Ubuntu Linux)系统上安装了clangd
,并从VS代码市场安装了官方的"vscode-clangd"扩展,我还调整了它的设置,以便clangd
可以被它找到。
但是,现在我迷失了。
当我打开*.cpp
或*.hpp
文件时,VS Code向我推荐了一些其他扩展(例如,带有智能感知支持的Microsoft官方"C/C++"扩展),但我完全看不出clangd
在哪里以及如何帮助我。
使用Microsoft的"C/C ++"扩展似乎可以开箱即用,但如何使用clangd
?
谢谢你的帮助。
2条答案
按热度按时间xcitsw881#
我可以共享我的一些配置。
微软的“C/C++”扩展是伟大的调试,我认为你应该安装它。
同时,Clangd在查找引用时提供了更准确的结果。因此,我的建议是保留官方的C/C++扩展用于调试,但禁用其智能感知。
请始终参考the official website,还有更多设置,如过滤掉编译参数等。正确配置后,您将在“问题”和“终端”旁边的“输出”窗口中看到clangd的输出。
ddhy6vgd2#
它应该可以在没有任何配置的情况下工作。我已经在Windows上测试过了,它工作得很好-我没有在Visual Studio代码中安装C/C扩展,只有
vscode-clangd
,它报告错误,提供代码完成等。这意味着扩展工作,因为在“核心”Visual Studio代码中没有这样的功能。Visual Studio代码仍然建议流行的C/C扩展,但是你可以忽略它,这并不意味着vscode-clangd
不工作。请注意,您正在编辑的文件必须具有
.cpp
或.c
这样的标准扩展名,才能被vscode-clangd
识别和操作。请参阅扩展名的源代码以获取所有支持的扩展名列表。对于简单的项目,没有配置就足够了,但是对于更复杂的项目,你当然需要让Clang知道一些东西,比如include目录,编译标志等等。这可以通过创建一个
compile_flags.txt
文件来完成,在这个文件中你输入Clang的参数,每行一个参数。你可以把这个文件和你的源文件放在同一个文件夹中,或者放在树中的任何地方。编辑完这个文件后,必须重新启动Visual Studio代码,更改才能生效。或者,您可以创建(或让CMake生成)一个
compile_commands.json
文件,其语法如下:有关详细信息,请参见Clang docs。