我导入了 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 多个文件。

  1. 最基本的方法是使用命令,在这种情况下:gcc Main.c testFunction.c -g -Wall
  2. 在这种情况下,您几乎总是需要的最简洁的方法是编写 makefile。