我是寫swift項目的,引入了騰訊雲視頻的SDK,錄製視頻,播放視頻都正常,可是一點擊上傳視頻,app就crash掉了。c++
當時項目是在Xcode7下運行,報的錯就一句話:swift
嗚嗚,最後終於能夠了,解決了崩潰的問題,可苦逼的一個過程了,搞了兩天。xcode
對於具體緣由,我網上搜了一些解釋:app
Other linker flags設置的值實際上就是ld命令執行時後面所加的參數。測試
下面逐個介紹3個經常使用參數:
-ObjC:加了這個參數後,連接器就會把靜態庫中全部的Objective-C類和分類都加載到最後的可執行文件中。若是靜態庫中有category,那麼須要添加 -ObjC 參數標識,不然可能會報:unrecognized selector sent to instance code
-all_load:會讓連接器把全部找到的目標文件都加載到可執行文件中,可是千萬不要隨便使用這個參數!假如你使用了不止一個靜態庫文件,而後又使用了這個參數,那麼你頗有可能會遇到ld: duplicate symbol錯誤,由於不一樣的庫文件裏面可能會有相同的目標文件,因此建議在遇到-ObjC失效的狀況下使用-force_load參數。
-force_load:所作的事情跟-all_load實際上是同樣的,可是-force_load須要指定要進行所有加載的庫文件的路徑,這樣的話,你就只是徹底加載了一個庫文件,不影響其他庫文件的按需加載視頻