libwebrtc與openCV庫的衝突:-fno-rtti與-frtti

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庫),但好在重新編譯後解決了兩個庫之前的衝突。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章