我正在尝试使用Visual Studio处理基于Makefile的项目。我创建了一个任务,现在我可以运行make并查看输出,其中包括VS内部的一些着色。但是,我无法单击编译错误并使VS带我到相应的代码行。我认为这是有可能的,而且我很难想象这很困难,因此我必须缺少一些显而易见的东西。
我可以用一个很小的例子来重现它:
main.c
#include <stdio.h>
int main(){
printf("jo\n");
unsigned int u = -999;
int x;
if ( u < x )
printf("really small\n");
asdfasdfa
#error "nononono"
}
Makefile
all:
gcc -Werror -Wall -Wextra -o main main.c
tasks.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "make",
"type": "shell",
"command": "make",
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
我过去通过通过将gcc
错误格式转换为stdout
错误格式的stderr
或sed
运行awk
输出(gcc
和msvc
)来解决了这个问题。