C 对“printb'”的未定义引用;

C 对“printb'”的未定义引用;,c,undefined,extern,C,Undefined,Extern,在我的头interface.h中,我有一个函数 extern void printb(字符*,无符号短字符,字符*) 在main.c中调用,如下所示 printb(“可用”,提取16位(ptr),LLDP\u CAP\u位) 我已经在我的main.c中包含了heder文件,如下所示 #包括“interface.h” 然而,当我试图编译时,我得到了如下错误: 未定义对“printb”集合的引用2:ld返回1退出状态 我试图对此做一些研究,结果却一无所获。非常感谢为解决此问题提供的任何帮助:) 谢谢

在我的头
interface.h
中,我有一个函数

extern void printb(字符*,无符号短字符,字符*)

main.c
中调用,如下所示

printb(“可用”,提取16位(ptr),LLDP\u CAP\u位)

我已经在我的
main.c
中包含了heder文件,如下所示

#包括“interface.h”

然而,当我试图编译时,我得到了如下错误:

未定义对“printb”集合的引用2:ld返回1退出状态

我试图对此做一些研究,结果却一无所获。非常感谢为解决此问题提供的任何帮助:)

谢谢:)

  • 首先,您需要找出函数printb()的定义在哪里。如果它位于其他静态库中,则在编译时需要链接到该库。例如,如果printb函数位于printb库中,则按如下方式编译源代码

    gcc-o主程序c-l打印B

  • 如果printb函数位于另一个独立的printb.c文件中,则将代码编译为

    gcc-o主程序c打印B.c

    这两种方法都适合你


  • printb是在哪里实现的?嗯,你有没有针对库进行链接,或者使用定义printb的对象进行编译?你没有正确链接。可能您需要键入以下命令行
    gcc-omyprog main.c interface.c
    。非常感谢您的回复,伙计们:)我很快会回复:)