c++代码包含c代码出现警报:Undefined reference to crc_16(unsigned char const*, unsigned long, unsigned short)
crc_16(unsigned char const*, unsigned long, unsigned short)是C语言编写的函数。
解决办法:
extern "C" {
#include "crc_16.h"
}
告诉C++编译器,这段代码用C编译器进行编译。
原因:
编译后的函数名在C和C++之间是不同的。C编译器后的crc_16(…)名称将只是_crc_16。在c++编译器之后,它的名字应该类似于crc_16__Fcii。extern "C"只是告诉编译器这些名称应该是C格式的
本文介绍了解决C++代码中调用C语言编写的crc_16函数时出现的未定义引用错误的方法。通过使用extern C声明,确保C++编译器正确处理C语言函数名。

被折叠的 条评论
为什么被折叠?



