C++引用C的静态库

操作系统:Linux 


项目中使用的语言是C++, 客户给的静态库是用c语言封装的,编译时一直报错:undefined reference to "xxxxxxxxxxxx".


经过查找得出原因有两点:

1. c++ 与 C 引用静态库头文件的时候,没有添加 extern "C" {  xxxxxxxx.h }

原因:C++ 有多态,编译时函数名和参数会联合起来,C语言没有,所有C++ 在调用C的静态库时,用extern C 告知编译器。


2.但是用extern “C” 之后 编译时依旧报错。经过大半天的调试最后发现,是客户给的静态库里有些接口没有实现,这真是汗汗汗!!!





版权声明:本文为u012293844原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。