我是使用Visual Studio Code的完全初学者,我不知道我在做什么。我一直在搜索(也许还不够),但我找不到像我这样的人的一个简单的解释如何配置c_cpp_properties.json
文件,我被重定向到每当我点击下划线旁边的黄色灯泡旁边绿色的波浪形。
我只是想知道在.json
中放入什么才能使IntelliSense正常工作
来自:https://code.visualstudio.com/docs/languages/cpp
下面你可以看到MinGW C ++包含路径已添加到Windows的browse.path:
{
"name": "Win32",
"includePath": [
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
"C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0\\include\\c++"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
希望有所帮助! :)
从C / C ++扩展的官方文档:
如果在VS代码中打开文件夹时看到以下消息,则表示C ++ IntelliSense引擎需要有关包含文件所在路径的其他信息。
包含路径在"includePath"
设置中定义,该文件名为c_cpp_properties.json,位于打开的文件夹的.vscode目录中。
您可以通过在命令面板中使用"C/Cpp: Edit Configurations"
命令或在灯泡菜单中选择"Edit "includePath" setting"
来创建或打开此文件(请参见下面的屏幕截图)。找到灯泡的最快捷方式是滚动到源文件的顶部,然后单击#include语句下显示的任何绿色波浪线。
打开文件夹时,扩展程序会尝试根据您的操作系统找到您的系统标头,但它不知道您的项目所依赖的任何其他库。您可以将鼠标悬停在绿色波浪线上或打开“问题”窗口,以了解IntelliSense引擎无法打开的标头 - 有时它是无法找到的从属标头。
您可以使用下面介绍的技术之一指定其余路径。
扩展可以从compile_commands.json文件获取"includePath"
和"defines"
的信息,该文件可以由许多构建系统(如CMake和Ninja)自动生成。查找定义当前配置的部分(默认情况下,每个操作系统有一个配置,例如“Win32或”Mac“),并将c_cpp_properties.json中的"compileCommands"
属性设置为compile_commands.json文件的完整路径,并且扩展将使用它代替IntelliSense的"includes"
和"defines"
属性。
首先要尝试利用灯泡路径建议来自动解析包含路径。当您打开文件夹时,扩展将递归搜索与您的代码正在使用的头文件匹配的潜在包含路径,这些路径基于c_cpp_properties.json中"browse.path"
设置设置的路径。单击#include语句下的绿色曲线,您将看到一个灯泡,提供允许IntelliSense解析所包含文件的路径建议。
如果您没有在灯泡中看到路径建议,请尝试将标题可能位于的根文件夹添加到c_cpp_properties.json中的"browse.path"
设置中。这允许扩展程序在这些文件夹中递归搜索,并在搜索过程继续时在灯泡中提供更多建议。
如果以上都不能完全解析路径,则可以在c_cpp_properties.json文件中手动指定项目所依赖的标头的路径。查找定义当前配置的部分(默认情况下,每个操作系统有一个配置,例如“Win32或”Mac“),并在"includePath"
设置中添加路径并在"defines"
设置中定义。例如,以下屏幕截图显示指定Mac配置路径的文件片段。
另外,对于MinGW,as the documentation of the extension explains,您可以要求gcc / g ++列出自己的包含文件:
gcc -v -E -x c++ nul
有两种方法可以验证包含路径是否已正确解析:
这表明IntelliSense引擎已解析包含路径,因此您可以开始享受当前转换单元的C或C ++代码的完整IntelliSense。请注意,如果其他文件属于需要配置其他包含路径的其他转换单元,您仍可能会看到错误。