我导入了 header 但它没有导入我的源代码
I import a header but it's not importing my source code
我正在尝试导入一个模块,但是当我构建并且 运行 它说:对 addNum
的未定义引用。它花了 2 个小时,我试图找出为什么有人可以帮忙,我是初学者。
Main.c:
#include <stdio.h>
#include <stdlib.h>
#include "testFunction.h"
int main()
{
int result = addNum(12);
printf("%d", result);
return 0;
}
testFunction.h:
#ifndef TESTFUNCTION_H_INCLUDED
#define TESTFUNCTION_H_INCLUDED
int addNum(int num);
#endif // TESTFUNCTION_H_INCLUDED
testFunction.c:
#include <stdio.h>
#include <stdlib.h>
#include "testFunction.h"
int addNum(int num){
return num + num;
}
正如@WhozCraig 所引用的,很明显您缺少 main.c 中的函数定义。因此,编译后 main.c
没有函数 addNum
的定义。 如果编译多个文件是你期待知道的。有几种方法可以在编译前 link 多个文件。
- 最基本的方法是使用命令,在这种情况下:
gcc Main.c testFunction.c -g -Wall
- 在这种情况下,您几乎总是需要的最简洁的方法是编写 makefile。
我正在尝试导入一个模块,但是当我构建并且 运行 它说:对 addNum
的未定义引用。它花了 2 个小时,我试图找出为什么有人可以帮忙,我是初学者。
Main.c:
#include <stdio.h>
#include <stdlib.h>
#include "testFunction.h"
int main()
{
int result = addNum(12);
printf("%d", result);
return 0;
}
testFunction.h:
#ifndef TESTFUNCTION_H_INCLUDED
#define TESTFUNCTION_H_INCLUDED
int addNum(int num);
#endif // TESTFUNCTION_H_INCLUDED
testFunction.c:
#include <stdio.h>
#include <stdlib.h>
#include "testFunction.h"
int addNum(int num){
return num + num;
}
正如@WhozCraig 所引用的,很明显您缺少 main.c 中的函数定义。因此,编译后 main.c
没有函数 addNum
的定义。 如果编译多个文件是你期待知道的。有几种方法可以在编译前 link 多个文件。
- 最基本的方法是使用命令,在这种情况下:
gcc Main.c testFunction.c -g -Wall
- 在这种情况下,您几乎总是需要的最简洁的方法是编写 makefile。