更新时间:2021-03-18 GMT+08:00
C调用C++函数,函数符号找不到
原因:被调用的函数未遵循C的调用约定,导致函数符号编译时按C++的命名修饰规则编译,而在调用处按C的命令修饰规则编译,调用时就会找不到定义。
解决方案:请在函数定义和声明前添加如下C的调用约定:
#ifdef __cplusplus #if __cplusplus extern "C" { #endif /* __cplusplus */ #endif /* __cplusplus */ /* code */ ... #ifdef __cplusplus #if __cplusplus } #endif /* __cplusplus */ #endif /* __cplusplus */
C++调用C函数,也存在类似问题,请在声明前添加C的调用约定。
父主题: C++常见问题