我通过SSH使用Make
来调用gcc
。
我在本地计算机上镜像了源文件以进行编辑。
编辑后,它与SFTP同步。
问题是当ProblemMatcher设置为$gcc
时,
它返回远程服务器的完整路径,因此无法与本地文件匹配。
本地档案: 〜/ foo / bar.c(= /home/user/foo/bar.c)
远程文件: 〜/ foo / bar.c(= /datavolume/foo/bar.c)
problemMatcher试图找到bar.c at
/home/user/datavolume/foo/bar.c
导致file not found
。
fileLocation
有两个选项relative
,absolute
,但都没有解决此问题。
使用relative
,我只能将..
用于本地位置。我无法修剪远程位置。
使用absolute
,我不知道如何使用它,但它仍然无法在WSL(Windows上的Bash)目录下找到本地位置。
absolute
也失败了。
"fileLocation":
[
"absolute",
"C:\\Users\\user\\AppData\\Local\\Packages\\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\\LocalState\\rootfs\\home\\user\\foo"
]
你有什么想法吗?
提前致谢。
答案 0 :(得分:0)
您可以使用regexp
减去/datavolume/
并像这样使用relative
:
"problemMatcher": {
"owner": "cpp",
"fileLocation": [
"relative",
"${workspaceFolder}"
],
"pattern": {
"regexp": "^\\/datavolume\\/(\\S+):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$",
"file": 1,
"line": 2,
"column": 3,
"severity": 4,
"message": 5
}
}