Nik*_* P. 9 c++ visual-studio-code
我是使用Visual Studio Code的完全初学者,我不知道我在做什么.我一直在搜索(也许还不够),但我无法找到像我这样的人的一个简单的解释,关于如何配置c_cpp_properties.json我被重定向到的文件,每当我点击一个带有下划线的行旁边的黄色灯泡时绿色的波浪形.
我只是想知道如何.json使IntelliSense正常工作
Sus*_*ary 11
来自 C/C++ 扩展的官方文档:
如果在 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",并"defines"从compile_commands.json文件,它可以自动生成许多构建系统,如CMake和忍者。查找定义当前配置的部分(默认情况下,每个操作系统有一个配置,例如“Win32 或”Mac”),并将c_cpp_properties.json 中的"compileCommands"属性设置为compile_commands.json 文件的完整路径和扩展将使用它而不是IntelliSense的和属性。"includes""defines"

使用灯泡建议自动解析 includePath
首先要尝试的是利用灯泡路径建议来自动解析包含路径。当您打开文件夹时,扩展程序将根据c_cpp_properties.json 中的设置设置的路径递归搜索与您的代码正在使用的头文件匹配的潜在包含路径。单击#include 语句下的绿色波浪线,您将看到一个灯泡,提供允许 IntelliSense 解析包含文件的路径建议。"browse.path"

如果您在灯泡中没有看到路径建议,请尝试将标头可能位于的根文件夹添加到c_cpp_properties.json的"browse.path"设置中。这允许扩展程序在这些文件夹中递归搜索,并随着搜索过程的进行在灯泡中提供更多建议。
手动添加包含路径
如果以上都不能完全解析路径,您可以在c_cpp_properties.json文件中手动指定项目所依赖的头文件的路径。查找定义您当前配置的部分(默认情况下每个操作系统有一个配置,例如“Win32 或”Mac”),并在"includePath"设置中添加您的路径并在设置中定义"defines"。例如,以下屏幕截图显示了指定 Mac 配置路径的文件片段。
此外,对于 MinGW,正如扩展的文档所解释的那样,您可以要求gcc/g++列出它自己的包含文件:
gcc -v -E -x c++ nul
Run Code Online (Sandbox Code Playgroud)
有两种方法可以验证包含路径是否正确解析:
这表明 IntelliSense 引擎已解析包含路径,因此您可以开始享受当前翻译单元的 C 或 C++ 代码的完整 IntelliSense。请注意,如果其他文件属于需要配置其他包含路径的不同翻译单元,您可能仍会在其他文件上看到错误。
小智 5
来自Visual Studio Code 的 C/C++(预览版):
下面您可以看到 MinGW C++ 包含路径已添加到 Windows 的 browser.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": ""
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58361 次 |
| 最近记录: |