如何解决VS Code中C++出现的includePath相关报错问题
VS Code C++ "no such directory found" 报错(伴随
edit include path提示)解决方法 该报错本质是VS Code C/C++扩展的智能提示与编译系统未配置正确的头文件搜索路径,导致无法定位对应目录及头文件,可按以下步骤解决:
解决步骤
- 点击头文件旁灯泡弹出的
edit include path选项,会自动打开C/C++扩展配置页,也可以手动在项目.vscode目录下新建/打开c_cpp_properties.json文件 - 找到配置项中的
includePath字段,添加缺失的头文件所在目录路径:- 若为项目内自定义头文件,添加项目根目录路径即可,示例:
"${workspaceFolder}/**",其中**代表递归搜索该目录下所有子文件夹 - 若为第三方库/系统编译器的头文件,填写对应头文件的实际绝对路径,Windows MinGW环境示例:
C:/MinGW/include/**,Linux环境示例:/usr/local/xxx/include/**
- 若为项目内自定义头文件,添加项目根目录路径即可,示例:
- 若修改后编译仍报错,同步修改编译任务配置:
- 打开
.vscode/tasks.json文件,找到args配置项 - 在g++编译参数中添加
-I+头文件路径的参数,示例:"-I${workspaceFolder}/include",每一个额外的头文件目录对应一条-I参数
- 打开
- 重启VS Code或重启C/C++语言服务,重新编译项目验证即可
配置示例
c_cpp_properties.json参考配置:
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:/MinGW/include/**" ], "defines": ["_DEBUG", "UNICODE", "_UNICODE"], "compilerPath": "C:/MinGW/bin/g++.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-gcc-x64" } ], "version": 4 }
tasks.json参考配置:
{ "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe 生成活动文件", "command": "C:/MinGW/bin/g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "-I${workspaceFolder}/include", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "C:/MinGW/bin" }, "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true } } ], "version": "2.0.0" }
注意事项
- 填写路径时优先使用正斜杠
/作为分隔符,若使用反斜杠需要写为双反斜杠\\避免JSON转义报错 - 路径末尾添加
/**代表递归搜索该目录下所有子目录的头文件,适合多层级头文件目录的场景
内容的提问来源于stack exchange,提问作者Nitin
相关产品推荐
相关产品推荐

