C 中对 (FUNCTIONNAME) 的未定义引用

Undefined Reference to (FUNCTIONNAME) in C

我正尝试在 C 中为用户输入创建自定义 header。每当我尝试使用它时,它都会抛出错误:

"Undefined Reference to (FUNCTION_NAME)"

它与所有其他 header 文件位于同一文件夹中,vscode 可以轻松找到 header 文件。 .h 和 .c 都在同一个文件夹中。

这是 header、c 文件和我正在使用的程序中的代码:

SGGINPUT.h

#ifndef SGGINPUT
#define SGGINPUT
#include <stdio.h>

char SGGchar();

#endif

SGGINPUT.c

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

char SGGchar() {
        char c;
        printf("Enter Char: ");
        scanf("%c",&c);
        printf("\n");
        return c;
}

test.c

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

int main() {
    char c = SGGchar();
    printf("%c",c);
}

我的解决方案是:

gcc -c test.c
gcc -c 'C:\msys64\mingw64\include\SGGINPUT.c'
gcc -o test test.o SGGINPUT.o

然后 运行 可执行文件。

因此,如果我要在与 test.c 相同的目录中制作 o 文件,则此解决方案有效,但我真的希望它的功能类似于 或任何其他默认值 header.

尝试:

gcc -c SGGINPUT.h SGGINPUT.c

结果文件将是一个 obj 文件:

SGGINPUT.o

接下来这样编译:

gcc -g SGGINPUT.o test.c -o "Output_name"

此外,您实际上不需要在 header 中包含 ,您只是在那里声明您的函数,仅此而已。