rtti:RTTI(Run-Time Type Identification),通过运行时类型识别能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型(引用百度解释)。
在项目中有用到webrtc的库和OpenCV库,两个开源项目的库均为自己编译。在导入到项目中编译时,如果在CMakeLists.txt中配置了-fno-rtti时,OpenCV库无法正常链接。如果换成-frtti参数时,则webrtc库无法正常链接。
从此情况来看,有两种方案来解决该冲突:
1.编译OpenCV的时候,加入-fno-rtti参数
2.编译webrtc的时候,加入-frtti参数
对于方案1,我试过,以失败告终。
对于方案2,看了一下webrtc的官网解释,编译时默认的不启用rtti功能的,即使用-fno-rtti参数。但也可以通过在gn命令中加入 use_rtti=true参数来开启。编译比较耗时(全平台的android库),但好在重新编译后解决了两个库之前的冲突。

本文探讨了在使用自编译的webrtc和OpenCV库时遇到的RTTI(运行时类型识别)冲突问题。通过调整编译参数,分别禁用或启用RTTI功能,成功解决了两个库之间的链接错误。最终,通过在webrtc编译过程中启用RTTI,实现了两库的兼容。
837

被折叠的 条评论
为什么被折叠?



