c和c++混编注意事项

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文件中

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容