正确使用头文件

时间:2015-09-27 23:28:22

标签: c

在main.c中出现未定义引用的错误。这是因为我有这样的几个文件:

main.c
{
    #include "somefile.h"
    somfunct() <--- undefined reference error
}

somefile.h
{
    somefunct() declaration
    ...
}

somefile.c
{
    #include "somefile.h"
    somefunct() definition
    ...
}

我正在尝试使用正确的组织,因为我只在头文件中使用声明并在单独的文件中定义它们。拆分我的代码后,我得到了未定义的引用错误,因为somefile.h和somefile.c之间没有链接。 尽管main.c包含了somefile.h头文件,但somefile.h中没有任何内容明确提到somefile.c ,所以我的函数只是部分定义的。处理这个问题的正确方法是什么?非常感谢。我希望这很清楚,如果没有,请告诉我。

1 个答案:

答案 0 :(得分:4)

以下是您目标的完整且有效的示例。

的main.c

#include "somefile.h"

int main() {
    somefunc();
    return 0;
}

somefile.h

#ifndef RHURAC_SOMEFILE_H
#define RHURAC_SOMEFILE_H

void somefunc();

#endif

somefile.c

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

void somefunc() {
    printf("hello\n");
}

示例构建(gcc)

gcc main.c somefile.c -o main

<强>输出

$ ./main 
hello