c和c++混编注意事项

2018-06-21  本文已影响0人  liqifyl

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

上一篇 下一篇

猜你喜欢

热点阅读