c_cpp_properties.json 参考

你不需要在 c_cpp_properties.json 文件中指定所有字段。扩展会自动用默认值填充任何缺失的字段。

顶级属性

  • env
    一个用户定义的变量数组,这些变量可以通过标准环境变量语法在配置中进行替换:${<var>} 或 ${env:<var>}。接受字符串和字符串数组。

  • configurations
    一个配置对象数组,向 IntelliSense 引擎提供关于你的项目和偏好的信息。默认情况下,扩展会根据你的操作系统为你创建一个配置。你也可以添加额外的配置。

  • version
    我们建议你不要编辑此字段。它跟踪 c_cpp_properties.json 文件的当前版本,以便扩展知道应该存在哪些属性和设置,并如何将此文件升级到最新版本。

  • enableConfigurationSquiggles
    设置为 true 以报告在 c_cpp_properties.json 文件中检测到的错误到 C/C++ 扩展。

配置属性

  • name
    标识配置的友好名称。Linux、Mac 和 Win32 是在这些平台上将被自动选择的特殊标识符。VS Code 的状态栏会显示哪个配置是活动的。你也可以选择状态栏中的标签来更改活动配置。

  • compilerPath (可选)
    你用于构建项目的编译器的完整路径,例如 /usr/bin/gcc,以启用更准确的 IntelliSense。扩展将查询编译器以确定系统包含路径和默认定义,用于 IntelliSense。

    "compilerPath": ""(空字符串)会跳过查询编译器。这在指定的编译器不支持用于查询的参数时非常有用,因为扩展将回退到任何可以找到的编译器(如 Visual C)。省略 compilerPath 属性不会跳过查询。

  • compilerArgs (可选)
    修改包含或定义所用的编译器参数,例如 -nostdinc++-m32 等。需要额外的空格分隔参数的参数应作为单独的参数输入数组中,例如,对于 --sysroot <arg> 使用 "--sysroot", "<arg>"

  • intelliSenseMode
    用于 IntelliSense 的模式,它映射到 MSVC、gcc 或 Clang 的架构特定变体。如果未设置或设置为 ${default},扩展将选择该平台的默认模式。

    平台默认值:

    • Windows: windows-msvc-x64
    • Linux: linux-gcc-x64
    • macOS: macos-clang-x64

    仅指定 <compiler>-<architecture> 变体(例如 gcc-x64)的 IntelliSense 模式是遗留模式,并根据主机平台自动转换为 <platform>-<compiler>-<architecture> 变体。

  • includePath
    包含路径是包含头文件的文件夹(例如 #include "myHeaderFile.h"),这些头文件包含在源文件中。指定 IntelliSense 引擎在搜索包含的头文件时使用的路径列表。这些路径的搜索不是递归的。使用 ** 指示递归搜索。例如,${workspaceFolder}/** 会搜索所有子目录,而 ${workspaceFolder} 不会。如果在 Windows 上安装了 Visual Studio,或在 compilerPath 设置中指定了编译器,则无需在此列表中列出系统包含路径。

  • defines
    预处理器定义的列表,供 IntelliSense 引擎在解析文件时使用。可选地,使用 = 设置值,例如 VERSION=1

  • cStandard
    用于 IntelliSense 的 C 语言标准版本。例如 c17gnu23${default}。请注意,GNU 标准仅用于查询设置的编译器以获取 GNU 定义,IntelliSense 将模拟等效的 C 标准版本。

  • cppStandard
    用于 IntelliSense 的 C++ 语言标准版本。例如 c++20gnu++23${default}。注意:GNU 标准仅用于查询设置的编译器以获取 GNU 定义,IntelliSense 将模拟等效的 C++ 标准版本。

  • configurationProvider
    可以为源文件提供 IntelliSense 配置信息的 VS Code 扩展的 ID。例如,使用 VS Code 扩展 ID ms-vscode.cmake-tools 从 CMake Tools 扩展提供配置信息。如果指定了 configurationProvider,该提供的配置将优先于 c_cpp_properties.json 中的其他设置。

    配置提供程序候选扩展必须实现 vscode-cpptools-api

  • windowsSdkVersion
    Windows 上使用的 Windows SDK 版本的包含路径,例如 10.0.17134.0

  • macFrameworkPath
    IntelliSense 引擎在搜索来自 Mac 框架的包含头文件时使用的路径列表。仅在 macOS 配置中支持。

  • forcedInclude (可选)
    在处理源文件中的任何其他字符之前应包含的文件列表。文件按列出的顺序包含。

  • compileCommands (可选)
    工作区的 compile_commands.json 文件的完整路径。如果在编辑器中打开的文件中有匹配的条目,将使用该命令行来配置 IntelliSense,而不是 c_cpp_properties.json 的其他字段。有关文件格式的更多信息,请参阅 Clang 文档。一些构建系统(如 CMake)简化了生成此文件。

  • dotConfig
    Kconfig 系统生成的 .config 文件的路径。Kconfig 系统生成一个包含构建项目所需的所有定义的文件。使用 Kconfig 系统的项目示例包括 Linux 内核和 NuttX RTOS。

  • mergeConfigurations
    设置为 true 以将包含路径、定义和强制包含与配置提供程序中的配置合并。

  • customConfigurationVariables
    可通过命令 ${cpptools:activeConfigCustomVariable} 查询的自定义变量,用于 launch.jsontasks.json 中的输入变量。

  • browse
    当 "C_Cpp.intelliSenseEngine" 设置为 "Tag Parser"(也称为 "模糊" IntelliSense 或 "浏览" 引擎)时使用的属性集合。这些属性也用于 "转到定义/声明" 功能,或当 "默认" IntelliSense 引擎无法解析源文件中的 #includes 时使用。

浏览属性

  • path
    Tag Parser 用于搜索源文件中包含的头文件的路径列表。如果省略,将使用 includePath 作为路径。默认情况下,路径的搜索是递归的。指定 * 以指示非递归搜索。例如:${workspaceFolder} 会搜索所有子目录,而 ${workspaceFolder}/* 不会。

  • limitSymbolsToIncludedHeaders
    如果为 true,Tag Parser 将仅解析直接或间接包含在 ${workspaceFolder} 中的源文件的代码文件。如果为 false,Tag Parser 将解析浏览路径列表中指定的路径中的所有代码文件。

  • databaseFilename
    生成的符号数据库的路径。此属性指示扩展将 Tag Parser 的符号数据库保存到工作区默认存储位置以外的位置。如果指定了相对路径,它将相对于工作区的默认存储位置,而不是工作区文件夹本身。可以使用 ${workspaceFolder} 变量来指定相对于工作区文件夹的路径(例如 ${workspaceFolder}/.vscode/browse.vc.db)。

支持的变量

你可以允许 tasks.jsonlaunch.json 查询 c_cpp_properties.json 中当前活动的配置。为此,请在 tasks.jsonlaunch.json 脚本中使用变量 ${command:cpptools.activeConfigName} 作为参数。

### 回答1: c_cpp_properties.json 文件是用于配置 Visual Studio Code 中 C/C++ 插件的配置文件。通过该文件可以配置 C/C++ 编译器、头文件路径、预定义宏等。可以在项目中手动创建该文件,或者在 VSCode 中打开 C/C++ 项目时自动生成。 ### 回答2: c_cpp_properties.json是一个用于配置C/C++项目的设置文件。它被用于告诉编辑器和其他开发工具如何处理项目中的包含文件路径、编译器选项和其他相关设置。 首先,在c_cpp_properties.json中最重要的字段是"configurations",它包含了对不同配置的定义。每个配置定义包含了一个名称和一组相关的设置,例如编译器路径和包含库的路径。可以添加多个配置,以便在不同的环境中方便地切换。例如,可以为Debug配置添加调试选项,并为Release配置添加优化选项。 另一个重要的字段是"includePath",它指定了项目中包含文件的路径。可以在其中列出所有的目录,以便编辑器可以正确地找到相关的头文件并提供自动补全和跳转到定义等功能。这将确保项目中的所有文件都可以正确引用和使用相关的头文件。 此外,"browse"字段允许自动浏览整个项目来查找头文件。通过配置该字段,编辑器可以在使用自动补全等功能时提供更好的体验。"browse"字段可以指定需要排除的文件或目录,以便编辑器可以忽略这些内容。 最后,还可以在c_cpp_properties.json中指定其他配置,如编译器路径、宏定义、预处理器选项、标准库路径等。这些配置将确保项目在构建和调试过程中的正确性和一致性。 总之,c_cpp_properties.json配置文件允许开发者对C/C++项目进行灵活的配置,以便在编辑器和开发工具中获得更好的开发体验,并确保项目能够顺利构建和调试。 ### 回答3: c_cpp_properties.json是一个用于配置C/C++开发环境的文件。这个文件用于指定编译器、标准库、头文件路径等信息,以便在编辑器中进行代码的智能补全、错误检查和导航等操作。 在c_cpp_properties.json文件中,我们可以配置多个编译器环境,每个编译器环境由一个对象表示,对象中包含了以下几个重要的属性: 1. "name": 编译器环境的名称,例如"GCC"、"Clang"等。 2. "includePath": 头文件的搜索路径,可以是绝对路径或相对路径的数组。 3. "defines": 预定义宏的数组,这些宏通常是用于编译时条件判断的。 4. "intelliSenseMode": 指定智能提示的模式,可以是"msvc-x64"、"msvc-x86"、"gcc-x64"等。 除了上述属性之外,还可以通过"compilerPath"属性来指定编译器的路径,以及通过"browse"属性来指定是否需要对指定的头文件进行导航操作。 配置c_cpp_properties.json的目的是为了与编辑器(如Visual Studio Code)的插件或扩展程序进行集成,以提供更好的C/C++开发体验。通过正确配置c_cpp_properties.json文件,可以让编辑器能够更好地了解项目的结构和依赖关系,并提供相应的代码补全、导航和错误检查等功能,方便开发者进行代码编写和调试工作。 总之,c_cpp_properties.json的配置是为了让我们在开发C/C++项目时能够充分利用编辑器的功能,提高开发效率和代码质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值