vscode多文件编译出现的问题

在用vscode多文件编译时出现问题,在网上找资料后用makefile,但还是报错,希望能帮忙解决一下(C语言)
下面是最基本的makefile
MakeFile

sum : main.o sum.o
    gcc main.o sum.o -o sum

main.o : main.o sum.h
    gcc -c main.c
sum.o : sum.c sum.h
    gcc -c sum.c

main.c

#include <stdio.h>
#include "sum.h"

int main()
{
    printf("%d\n", sum(8,3));
    // printf("1");
    return 0;
}

sum.c

#include "sum.h"

int sum(int a, int b)
{
    return a + b;
}

sum.h

int sum(int a, int b);

报错:

img

多文件文件夹

img


附上从网上找的环境配置(单文件下运行和调试均成功)
c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/include/c++",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/include/c++/x86_64-w64-mingw32",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/include/c++/backward",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/include",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../include",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/include-fixed",
                "C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/../../../../x86_64-w64-mingw32/include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\TDM-GCC-64\\bin\\gcc.exe",
            "cStandard": "gnu17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

launch.json

{
    
    "version": "0.2.0",
    "configurations": [
        {
            "name": "gcc.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,//弹出控制台窗口
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\TDM-GCC-64\\bin\\gdb.exe",//自己调试器位置
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: gcc.exe build active file"
        }
    ]
}


tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: gcc.exe build active file",
            "command": "C:\\TDM-GCC-64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "test",
                "isDefault": true
            }
        }
    ]
}


settings.json

{
    "C_Cpp.errorSquiggles": "Enabled",
    "files.associations": {
        "stdio.h": "c",
        "stdlib.h": "c",
        "type_traits": "c",
        "firstfilefunction.h": "c"
    }
}

makefile文件第四行应该写成main.o : main.c sum.h,其实整个makefile文件就写成

sum : main.o sum.o
main.o:
sum.o:

这样就好,它会自动推导的