我在VScode中编写C++程序,
在c_cpp_properties.json的"includePath": 中添加了自己编写的头文件的相对路径,然而显示报错:
头文件路径:
tempCodeRunnerFile.cpp:1:10: 致命错误:S.h:No such file or directory
#include "S.h"
在#include中直接写头文件的绝对路径能成功,并且在VS2019中添加同样的相对路径的操作却成功了,有大佬知道是什么原因吗?
我也遇到相同的问题,同样设置了c_cpp_properties.json,不管是绝对路径还是相对路径都尝试过,编辑器也正常提示出头文件,但却还是显示No such file or directory。看了好多帖子和文章都不是我这种情况,楼主,请问你解决了吗?
c_cpp_properties.json的作用应该是你在写代码的时候,用ctrl+鼠标可以方便跳转到指定文件/函数的具体实现,而编译的时候并不会去引入c_cpp_properties.json的信息;
要想在编译时生效,应该修改tasks.json文件,如杨海华(小黄鸭) 的答案。
有没有把.h文件所在的路径放在includepath里面
task.json里面添加路径的选项,在编译的时候,是这里的路径起作用。
参考文章
"-I", "D:\vscode\opencv\build\include\opencv2", //这个是头文件路径
"-L", "D:\vscode\opencv\build\x64\MinGW\lib", //这个是lib路径
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
//launch.json 文件中 "preLaunchTask" 的值 必须与 tasks.json 文件中 "label"的值一致。
//值的设置看个人喜好,保持默认也是OK的。
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "task g++",
"command": "D:\\vscode\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I", "D:\\vscode\\opencv\\build\\include",
"-I", "D:\\WorkSpace\\Test2\\include",
"-I", "D:\\vscode\\opencv\\build\\include\\opencv2",
"-L", "D:\\vscode\\opencv\\build\\x64\\MinGW\\lib",
"-l", "opencv_world440"
],
"options": {
"cwd": "D:\\vscode\\mingw64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
}
我也遇到这种情况,请问下楼主的问题解决了吗?