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
。非常感谢您的回复,伙计们:)我很快会回复:)