1、c的编译器与c++编译器生成函数签名机制不同,所以在cpp文件中引用c语言的函数需要加
extern C{
*****
}
来告诉c++编译器 extern c里面代码是c风格的代码,需要按照 c 语言函数签名机制查找引用的函数,否则会提示 undefined reference to `function()` 错误
2、c++函数签名机制请阅读
https://www.cnblogs.com/wfwenchao/articles/4140388.html 博客
3、注意 在 c或者c++中出现 undefined reference to 错误我遇到有2种情况
1)c与c++混编
2) 函数对应的源文件没有编译到库文件中
3)linux 或者 mac上可以通过 objdump -t ****.so | grep "symbol"来查询某个函数是否编译到so文件中
网友评论