如何使用Linux样式的gcc错误设置VSCode的问题匹配器

问题描述

我正在Windows 7上使用VSCode,并且安装了MSYS2 + mingw-w64-x86_64-gcc + base-devel

我的项目tasks.json运行make命令来构建:

{
    "tasks": [
        {
            "type": "shell","label": "build","command": "make","options": {
                "cwd": "${workspaceFolder}"
            },"problemmatcher": [
                "$gcc"
            ],"group": {
                "kind": "build","isDefault": true
            }
        }
    ],"version": "2.0.0"
}

问题是GCC通过以下方式生成错误消息:

src/src_file.cpp:773:59: error: comparison of integer expressions of different signedness

存储在$workspaceFolder变量中的项目路径为D:\myproject

文件的真实路径是D:\myproject\tools\src\src_file.cpp在这种情况下,我不知道如何设置问题匹配器。我猜想Linux风格的斜杠会影响此问题,但我不确定。我尝试为匹配器设置regexp,但是无法正常工作。

更新:

实际上,正斜杠和反斜杠不会影响结果。

解决方法

使用此问题匹配器,以$ gcc为基础并定义文件位置

  "problemMatcher": {
    "base": "$gcc","fileLocation": ["relative","${workspaceFolder}/tools"]
  }

修改

删除了src,因为它已经是错误消息的一部分。 (没发现)