我是使用 Visual Studio Code 的完全初学者,我不知道我在做什么。
我已经四处搜索(也许还不够),但我找不到像我这样的人如何配置的简单解释c_cpp_properties.json
每当我单击带有绿色波浪线下划线的行旁边的黄色灯泡时,我都会重定向到该文件。
灯泡示例 https://i.stack.imgur.com/5gxQw.png
c_cpp_properties.json https://i.stack.imgur.com/OMlGq.png
我只是想知道要放入什么.json
使 IntelliSense 正常工作。
来自C/C++扩展的官方文档:
配置 includePath 以获得更好的 IntelliSense 结果
如果在 Visual Studio Code 中打开文件夹时看到以下消息,则意味着 C++ IntelliSense 引擎需要有关包含文件所在路径的其他信息。
包含路径在哪里定义?
包含路径定义在"includePath"
设置在一个名为c_cpp_properties.json位于打开的文件夹中的 .vscode 目录中。
您可以使用以下命令创建或打开此文件"C/Cpp: Edit Configurations"
命令面板中的命令或通过选择"Edit "includePath" setting"
在灯泡菜单中(参见下面的屏幕截图)。找到灯泡的最快方法是滚动到源文件的顶部,然后单击 #include 语句下显示的任何绿色波浪线。
打开文件夹时,扩展程序会尝试根据您的操作系统查找系统标头,但它不知道您的项目依赖的任何其他库。您可以将鼠标悬停在绿色波形曲线上或打开“问题”窗口来了解 IntelliSense 引擎无法打开哪些标头 - 有时是无法找到依赖标头。
如何指定包含路径?
您可以使用下述技术之一指定剩余路径。
-
使用compile_commands.json文件提供includePaths并定义信息
扩展程序可以获取以下信息"includePath"
and "defines"
来自compile_commands.json 文件,该文件可以由许多构建系统(例如CMake 和Ninja)自动生成。查找定义当前配置的部分(默认情况下,每个操作系统有一个配置,例如“Win32 或“Mac”),然后设置"compileCommands"
财产在c_cpp_properties.json到您的compile_commands.json文件的完整路径,扩展将使用它而不是"includes"
and "defines"
IntelliSense 的属性。
-
使用灯泡建议自动解析 includePath
首先要尝试的是利用灯泡路径建议来自动解析包含路径。当您打开文件夹时,扩展程序将递归地根据设置的路径搜索与您的代码正在使用的头文件匹配的潜在包含路径"browse.path"
设置在c_cpp_properties.json。单击 #include 语句下的绿色波浪线,您将看到一个灯泡,提供允许 IntelliSense 解析包含文件的路径建议。
如果您在灯泡中没有看到路径建议,请尝试将标题可能所在的根文件夹添加到"browse.path"
设置在c_cpp_properties.json。这允许扩展递归地在这些文件夹中进行搜索,并随着搜索过程的进行在灯泡中提供更多建议。
-
手动添加包含路径
如果上述方法都不能完全解析路径,您可以在中手动指定项目所依赖的标头的路径c_cpp_properties.json文件。查找定义当前配置的部分(默认情况下,每个操作系统都有一个配置,例如“Win32 或“Mac”),然后在"includePath"
设置和定义在"defines"
环境。例如,以下屏幕截图显示了指定 Mac 配置路径的文件片段。
另外,对于 MinGW,正如扩展的文档所解释的那样 https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/MinGW.md你可能会问gcc/g++列出它自己的包含文件:
gcc -v -E -x c++ nul
验证包含路径是否正确解析
有两种方法可以验证包含路径是否已正确解析:
- 源文件中的绿色波浪线不再显示
- 问题窗口中的错误消息已清除
这表明 IntelliSense 引擎已解析包含路径,因此您可以开始享受当前翻译单元的 C 或 C++ 代码的完整 IntelliSense。请注意,如果其他文件属于需要配置其他包含路径的不同翻译单元,您可能仍然会看到错误。
如果这不能解决您的问题,请查看下面的 MinGW 配置,并尝试为相应/类似的头文件和文件夹设置 Cygwin 安装的适当位置。
配置 MinGW https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/MinGW.md
c_cpp_properties.json 参考指南 https://github.com/Microsoft/vscode-cpptools/blob/master/Documentation/LanguageServer/c_cpp_properties.json.md
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)