文档首页/ LiteOS/ 常见问题/ C++常见问题/ C调用C++函数,函数符号找不到
更新时间: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的调用约定。

相关文档