前情:
最近小燈塔需要加直播的庫來實現(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é)果閃退解決。