在用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);
报错:
多文件文件夹
{
"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:
这样就好,它会自动推导的