Vscode "Unable to open [file]: Unable to read file" 单击错误时的消息

Vscode "Unable to open [file]: Unable to read file" message when clicking on an error

我在单击警告时收到此消息。这是案例截图。

错误显示,

Unable to open 'warning.cpp': Unable to read file '/Users/dimen/code/C++/Users/dimen/code/C++/warning.cpp' (Error: Unable to resolve non-existing file '/Users/dimen/code/C++/Users/dimen/code/C++/warning.cpp').

我的脚本位于 /Users/dimen/code/C++/warning.cpp,因此 vscode 出于某种原因重申了路径。

我怀疑 linter 设置一定是写错了,但我不确定应该在哪里编辑。作为一些旁注,

勾选this link。好像需要对目录进行详细的配置。在 task.json 中,problemMatcher 将文件目录作为相对目录,因此您得到了重复路径。将 "fileLocation" 设置为 "absolute" 适用于我的笔记本电脑。

您需要编辑 tasks.jsonproblemMatcher 部分,以便它有一个名为 fileLocation 的变量,该变量设置为 absolute。这是它应该是什么样子的示例:

"problemMatcher": {
    "base" : "$gcc",
    "fileLocation" : "absolute"
}

希望对您有所帮助。

我也遇到了这个问题。

为了解决这个问题,我关闭了 VSCode 并再次导入了 文件夹,因为在我的条件下文件夹路径发生了变化

如果这不起作用,您可以卸载 VSCode 然后重新安装。

对我来说这在 tasks.json:

{
    "tasks": [
        {
            //"type": "cppbuild",
            "label": "build my project",
            "command": "/home/user/path/build.bash",
            "args": [
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": {
                "base": "$gcc",
                "fileLocation": "absolute",
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

出于某种原因,我必须专门删除 "type": "cppbuild" 才能正常工作。

我通过更改 'launch.json' 文件解决了这个问题。我在“配置”字段中更改了“名称”下方“cwd”的值:“(gdb) Launch eds”。我将它设置为包含项目的文件夹的绝对路径。下面是我的 launch.json 文件。我在 Ubuntu.

上使用 VS Code
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) Launch eds",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build_x86_debug/bin/fcc",
            "args": ["-a=${workspaceFolder}/build_x86_debug/bin/", "-d=${workspaceFolder}/build_x86_debug/bin/", "-c=${workspaceFolder}/build_x86_debug/bin/"],
            "stopAtEntry": false,
            "cwd": "/home/aiden/dev2",
            "environment": [{"name": "LD_LIBRARY_PATH", "value": "/usr/lib:${workspaceFolder}/build_x86_debug/bin:${workspaceFolder}/pocolib1.7.5"}],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        },
        {
            "name": "Launch",
            "type": "lldb",
            "request": "launch",
            "program": "${workspaceFolder}/build_x86/bin/emvadapter",
            "cwd" : "/home/vendor",
            "env" : { "LD_LIBRARY_PATH":"/home/vendor/lib" }

        },
        {
            "name": "Unit Tests",
            "type": "lldb",
            "request": "launch",
            "program": "${workspaceFolder}/build_x86/bin/",
            "linux": { "cwd": "${workspaceFolder}/vendor"}
        }
    ]
}

我也在 ApiLogicServer 上看到了这个,它广泛使用了这个功能。

花了一些时间,但通过单击容器(左下角)然后重建容器解决了这个问题: