vscode一直不能跳转函数定义或者别的定义c_cpp_properties.json、settings.json

vscode好几天一直不能跳转函数定义或者别的定义,突然又好了。。。

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "windows-gcc-x86",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/adas/ADAS_FUSION/ObjFusn/Source"
            ],
            "compilerPath": "D:/soft_install/MinGW/bin/gcc.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x86",
            "compilerArgs": [
                ""
            ]
        }
    ],
    "version": 4
}

settings.json

{
  "C_Cpp_Runner.cCompilerPath": "gcc",
  "C_Cpp_Runner.cppCompilerPath": "g++",
  "C_Cpp_Runner.debuggerPath": "gdb",
  "C_Cpp_Runner.cStandard": "",
  "C_Cpp_Runner.cppStandard": "",
  "C_Cpp_Runner.msvcBatchPath": "",
  "C_Cpp_Runner.useMsvc": false,
  "C_Cpp_Runner.warnings": [
    "-Wall",
    "-Wextra",
    "-Wpedantic",
    "-Wshadow",
    "-Wformat=2",
    "-Wcast-align",
    "-Wconversion",
    "-Wsign-conversion",
    "-Wnull-dereference"
  ],
  "C_Cpp_Runner.msvcWarnings": [
    "/W4",
    "/permissive-",
    "/w14242",
    "/w14287",
    "/w14296",
    "/w14311",
    "/w14826",
    "/w44062",
    "/w44242",
    "/w14905",
    "/w14906",
    "/w14263",
    "/w44265",
    "/w14928"
  ],
  "C_Cpp_Runner.enableWarnings": true,
  "C_Cpp_Runner.warningsAsError": false,
  "C_Cpp_Runner.compilerArgs": [],
  "C_Cpp_Runner.linkerArgs": [],
  "C_Cpp_Runner.includePaths": [],
  "C_Cpp_Runner.includeSearch": [
    "*",
    "**/*"
  ],
  "C_Cpp_Runner.excludeSearch": [
    "**/build",
    "**/build/**",
    "**/.*",
    "**/.*/**",
    "**/.vscode",
    "**/.vscode/**"
  ],
  // "C_Cpp.intelliSenseEngine": "Tag Parser",
  "C_Cpp_Runner.useAddressSanitizer": false,
  "C_Cpp_Runner.useUndefinedSanitizer": false,
  "C_Cpp_Runner.useLeakSanitizer": false,
  "C_Cpp_Runner.showCompilationTime": false,
  "C_Cpp_Runner.useLinkTimeOptimization": false,
  "C_Cpp_Runner.msvcSecureNoWarnings": false,
  "files.associations": {
    "sfobjectfusionmpf_func.h": "c",
    "alvobjfusn_kinematics.h": "c",
    "alvobjfusn_vehicleparameters.h": "c",
    "objfusn_memmap.h": "c",
    "alv_prv_idprovider.h": "c",
    "stdio.h": "c"
  }
}
<think>嗯,用户让我介绍一下c_cpp_properties.json这个文件。首先,我需要回忆一下这个文件的作用和常见的使用场景。记得在Visual Studio Code中,C/C++扩展会使用这个文件来配置IntelliSense相关的设置,比如包含路径、编译器路径、宏定义等等。对吧? 那用户可能是在配置C/C++开发环境时遇到了问题,或者想了解如何正确设置这个文件以提高代码编辑的体验。他们可能不太清楚各个配置项的作用,或者遇到了头文件找不到、IntelliSense不工作的问题。 接下来,我需要确认这个文件的位置。通常在VSCode的工作区或用户设置中,位于.vscode文件夹下。不过用户可能已经知道这一点,所以重点应该放在文件的结构和各个参数的解释上。 然后,我需要考虑用户的使用场景。他们可能是刚开始使用VSCode进行C/C++开发,或者是从其他IDE转过来,需要迁移配置。因此,解释每个配置项的具体含义和示例会很有帮助,比如includePath、compilerPath、defines等。 另外,用户可能有不同的操作系统,比如Windows、Linux或macOS,所以需要提到不同系统下的路径差异,以及如何根据编译器自动生成配置。比如使用GCC或者Clang时,compilerPath的设置可能不同,或者是否需要使用compileCommands.json来自动获取配置。 还需要注意,用户可能希望了解如何手动编辑这个文件,以及自动配置的方法,比如通过扩展提供的命令来生成。这样可以避免手动输入错误,特别是处理复杂的项目结构时。 可能用户还会想知道常见问题的解决方法,比如头文件找不到的情况,应该检查includePath是否正确,或者编译器路径是否设置正确。此外,不同配置之间的切换,比如针对不同平台或编译器的配置,可能需要配置多个条目在configurations数组中。 最后,应该提醒用户这个文件是JSON格式,语法必须正确,否则会导致配置无效。可能需要建议他们使用VSCodeJSON验证功能,或者参考官方文档进行更详细的设置。 总结一下,回答的结构应该包括文件的作用、位置、结构详解、配置示例、常见配置项说明、自动生成方法、多平台支持和注意事项。这样用户能够全面了解如何配置和调整c_cpp_properties.json,解决他们在C/C++开发中的配置问题。</think>以下是对 `c_cpp_properties.json` 的逐步解析(Visual Studio Code 中 C/C++ 扩展的配置文件): #### 1. **文件作用** - 用于配置 VS Code 的 C/C++ 扩展(Microsoft C/C++ Extension) - 控制 IntelliSense 行为(代码补全、错误提示、跳转定义等) - 定义编译器路径、头文件搜索路径、预处理器宏等 #### 2. **文件位置** - 工作区级:`.vscode/c_cpp_properties.json` - 用户级:`~/.config/Code/User/c_cpp_properties.json` #### 3. **基础结构** ```json { "configurations": [ { "name": "配置名称", "includePath": [], "defines": [], "compilerPath": "", "cStandard": "", "cppStandard": "", "intelliSenseMode": "" } ], "version": 4 } ``` #### 4. **配置示例** ```json { "configurations": [ { "name": "Linux", "includePath": [ "${workspaceFolder}/**", "/usr/include/c++/9", "/usr/local/include" ], "defines": ["DEBUG=1"], "compilerPath": "/usr/bin/gcc", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "linux-gcc-x64" } ], "version": 4 } ``` #### 5. **关键配置项详解** | 字段 | 作用 | 示例值 | |------|------|--------| | `name` | 配置标识(如平台名) | `"Win32"`, `"Mac"` | | `includePath` | 头文件搜索路径 | `["/usr/local/include"]` | | `defines` | 预定义宏 | `["_DEBUG"]` | | `compilerPath` | 编译器绝对路径 | `"C:/mingw64/bin/g++.exe"` | | `cStandard` | C 语言标准 | `"c11"`, `"c17"` | | `cppStandard` | C++ 标准 | `"c++14"`, `"c++20"` | | `intelliSenseMode` | 智能感知模式 | `"windows-msvc-x64"` | #### 6. **自动生成配置** - 按 `Ctrl+Shift+P` ➔ 输入 `C/C++: Edit Configurations (UI)` - 通过图形界面设置参数后自动生成文件 #### 7. **多平台支持** 可同时配置多个平台: ```json "configurations": [ {"name": "Win32", ...}, {"name": "Linux", ...}, {"name": "Mac", ...} ] ``` #### 8. **高级技巧** - 使用 `${workspaceFolder}` 表示项目根目录 - 通过 `compile_commands.json` 自动获取配置: ```json "configurationProvider": "ms-vscode.cpptools" ``` #### 9. **注意事项** - JSON 语法必须严格正确(逗号、引号等) - 修改后需重新加载窗口生效(`Ctrl+Shift+P` ➔ `Reload Window`) 如需调试配置有效性,可通过 `C/C++: Log Diagnostics` 命令查看当前解析环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值