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 中包含 ,您只是在那里声明您的函数,仅此而已。
我正尝试在 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 文件,则此解决方案有效,但我真的希望它的功能类似于
尝试:
gcc -c SGGINPUT.h SGGINPUT.c
结果文件将是一个 obj 文件:
SGGINPUT.o
接下来这样编译:
gcc -g SGGINPUT.o test.c -o "Output_name"
此外,您实际上不需要在 header 中包含