头文件(.text + 0x15):未定义引用

时间:2015-05-07 19:42:47

标签: c header-files

我在编译时编写简单的头文件我得到了错误

/tmp/ccOH3HcX.o: In function `main':
sample.c:(.text+0x15): undefined reference to `f'
collect2: error: ld returned 1 exit status

whatever.h

#ifndef WHATEVER_H_INCLUDED
#define WHATEVER_H_INCLUDED
int f(int a);
#endif

示例whatever.c

#include "whatever.h"

int f(int a) { return a + 1; }

sample.c文件

#include "whatever.h"

int main(int argc, char **argv)
{
    printf("%d\n", f(2)); /* prints 3 */
    return 0;
}

编译它:

$ gcc -c whatever.c -o whatever.o
$ gcc -c sample.c -o sample.o

2 个答案:

答案 0 :(得分:2)

您需要在第二个gcc编译行中包含对象文件whatever.o。

一个简单的>> G1 = 1/(s*(s-1)); >> G2 = 1/(s*(s-1)); >> G1 == G2 % won't work.. 应该这样做

答案 1 :(得分:2)

您只给出了创建对象文件的编译器步骤,而不是可执行文件。我想你做了类似

的事情
gcc sample.c -o sample

之后然后得到了错误?

您必须链接目标文件以获取可执行文件,如下所示:

gcc whatever.o sample.o -o executable_file