2014-02-14 86 views
-1

在我的头interface.h我有一个功能,未定义的参考`printb”

extern void printb(char *, unsigned short, char *);

被称为在main.c如下,

printb(" available", EXTRACT_16BITS(ptr), LLDP_CAP_BITS);

而且我已经包括了heder文件在我的main.c中,如下所示。

#include "interface.h"

然而,当我尝试编译,我得到的错误,说明下面,

undefined reference to 'printb' collect2: ld returned 1 exit status

我试图做一些这方面的研究,想出了空手而归。任何帮助来解决这个问题,非常感谢:)

谢谢:)

+3

printb是在哪里实现的? – igoris

+3

恩,嗯,你是否已经链接到库或用printb定义的对象进行编译? – Salgar

+0

你没有正确链接。可能你需要输入这个commande行'gcc -o myprog main.c interface.c'。 –

回答

0
  1. 首先,你需要找出函数printb()的定义。如果它在其他静态库中,则需要在编译时链接到该库。例如,如果你的printb函数在printb库中,那么编译你的源代码如下。

    的gcc -o前卫的main.c -l printb

  2. 如果您printb功能是在另一个独立的printb.c文件,然后编译代码为

    的gcc -o PROG main.c中printb。 c

    其中之一应该适合您。