最近,在需要运行拥有头文件的cpp代码时候,vscode提示fatal error: **.h: No such file or directory 找不到头文件或所在目录。

这里记录一下我的解决办法。

1.设置launch.json 设置重点为加注释的句子

 

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "shell",
			"label": "C/C++: g++.exe 生成活动文件",
			"command": "C:\\environment\\mingw64\\bin\\g++.exe",// 设置为自己的g++.exe 地址
			"args": [
				"-g",
				"${file}",
                "-I",    // 如果头文件和代码文件不在同一个目录下,增加此代码,-I 表示向编译器指定头文件地址。
                "D:\\TEST\\include", // 设置为自己要引用头文件所在的目录
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			}
		}
	]
}

2.设置lauch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\environment\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 生成活动文件"
        }
    ]
}

3. 按下F5 程序可正常寻找到头文件,输出结果正确

问题解决。

PS: 后来发现使用coderunner插件时,运行文件又会出现此问题,发现是 其中的 Executor Map 没有加指定头文件地址。添加过程如下

        1)ctrl + "," 打开设置

        2)搜索 Code-runner: Executor Map 

        3)进入setting.json中,修改cpp文件执行脚本,添加指定头文件所在目录路径

 

"code-runner.executorMap": {
        
        ......

        
        // "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
         "cpp": "cd $dir && g++ $fileName -I D:\\code\\file\\include  -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        ......
}

 

这下就可以愉快的用coderunner运行程序了 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐