c源文件导出了一个原型为func(SET_ABC *v)的函数到动态库和头文件func.h
c++源文件引用了func.h,编译后程序运行时链接上述动态库,报错找不到_Z12funcP16_tag_SetAbc函数
原因是c++把func里的函数弄成了c++那种带签名的符号,c编译成的动态库里自然找不到这个符号
这就是extern "C"的作用
用
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif
把上述c库导出的函数包起来,就会按c语言的格式去编译了