C++动态库重命名冲突解决方法


参考资料:
https://blog.csdn.net/cpucooler2011/article/details/38371323

总结:

  1. Windows平台下不存在该问题,因为windows在编译动态库的时候,会要求coder强制使用export import等修饰符来明确指定要保护和要暴露的API.如果没有指定,编译直接报错了,因此不存在动态库在后续调用出现问题的可能;
  2. Linux/Android平台下使用GCC编译动态库,GCC默认所有定义的函数都是可导出的,也即visibility=default,因此很容易出现函数覆盖的问题,需要主动的在编写接口代码和编译的时候明确指定导出的API,否则出了问题,GCC不给你擦屁股;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM