制作私有庫時要注意做隱藏符號表

前情:
最近小燈塔需要加直播的庫來實現(xiàn)直播的功能。 但是小燈塔本身里面已經(jīng)使用了IJKMediaFramework(里面有ffmpeg)來做視頻播放,然后直播功能的sdk,他里面有聲網(wǎng)加的ffmpeg。

然后就是小燈塔的IJKMediaFramework內(nèi)部調(diào)到了聲網(wǎng)的同名函數(shù),但是實現(xiàn)不一樣,掛了。

出現(xiàn)的問題就是小燈塔本身的視頻,一播放就閃退。

解決方案:
做私有庫的時候?qū)σ氲牡谌降膸煲鲭[藏符號表處理,基本的處理是

#編譯單一庫文件,執(zhí)行預鏈接,將依賴庫集成到輸出庫中并隱藏符號
'GENERATE_MASTER_OBJECT_FILE'=>'YES',
 
#指定哪些靜態(tài)庫需要預鏈接進輸出庫中
#這里針對依賴的庫為binary形式的情況,源代碼集成的方式還需要研究
'PRELINK_LIBS'=>'"${PODS_ROOT}/ObjectiveLevelDB/ObjectiveLevelDB.framework/ObjectiveLevelDB" "${PODS_ROOT}/leveldb/leveldb.framework/leveldb"'
 
#需要將下面標識設(shè)置為NO,否鏈接則會出現(xiàn)找不到符號的錯誤。
GCC_SYMBOLS_PRIVATE_EXTERN'=>'NO',

針對這個的例子:


私有庫1.png
私有庫2.png
私有庫3.png

設(shè)置好后,重新導出IJKMediaFramework的庫放工程里面運行,結(jié)果閃退解決。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容