我在一个项目上工作,它使用“make and gcc”来编译它的所有模块。这些模块位于它们自己的文件夹中,并拥有自己的 Makefile。全局 Makefile 调用它们以编译二进制文件。
所以现在我正在尝试使用 Visual Studio Code 作为我的 IDE。我已经设置了编译环境,它运行良好。
唯一的问题是每当有一些警告/编译时,单击它们不会打开正确的文件。我的工作目录将类似于下面显示的简化代码。
D:\SO
|-- common
| |-- main.c
| `-- Makefile
`-- Makefile
从任务中,我将调用外部 Makefile,它将调用内部通用的 Makefile。在 main.c 中,我故意删除了 stdio.h 头文件包含,它应该显示隐式声明错误。但是当我单击问题窗口上的警告时,VS 代码会抛出一个错误,显示该文件未找到。VS Code 尝试打开“D:\SO\main.c”,但文件实际上在“D:\SO\common\main.c”中
外部 Makefile
all:
(cd common && make )
内部 Makefile(在公共目录内)
all:
gcc main.c
主程序
int main(int argc, char *argv[])
{
printf("Hello World");
return 0;
}
任务.json
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"taskName": "make",
"command": "make",
"type": "shell",
"problemMatcher": [
"$gcc"
]
}
]
}
我试图通过为 fileLocation 参数提供不同的组合来调整问题匹配器。但它们没有产生正确的结果。所以我没有把它包括在这里。
我在带有 mingw-gcc 的 Windows 10 1607 x64 上使用 Visual Studio Code 1.14.2。