在TARGETS-->Build Settings-->Linking-->Other Linker Flags添加規(guī)則
如果第三庫中沒有 category症见,Other Linker Flags 無需設置
如果第三方庫中有 category喂走,需要設置為 -ObjC
如果出現問題,修改設置為 -all_load 或者 -force_load + 路徑
-ObjC
這個flag告訴鏈接器把庫中定義的Objective-C類和Category都加載進來谋作。這樣編譯之后的app會變大(因為加載了其他的objc代碼進來)芋肠。但是如果靜態(tài)庫中有類和category的話只有加入這個flag才行。
-all_load
這個flag是專門處理-ObjC的一個bug的遵蚜。用了-ObjC以后帖池,如果類庫中只有category沒有類的時候這些category還是加載不進來。變通方法就是加入-all_load或者-force-load吭净。-all_load會強制鏈接器把目標文件都加載進來睡汹,即使沒有objc代碼。-force_load在xcode3.2后可用寂殉。但是-force_load后面必須跟一個只想靜態(tài)庫的路徑囚巴。
-force_load
如果有多個三方庫,有的需要加友扰,有的不需要彤叉,用-all_load到最后duplicate symbol錯誤
此時可以用-force_load + 路徑方式
需要注意
-force_load
$(SRCROOT)/DDYVR/VRPlayerSDK/DDYVRPlayer.framework/
會報錯ld: can't map file, errno=22
正確方式是路徑加frameWork名稱
-force_load
$(SRCROOT)/DDYVR/VRPlayerSDK/DDYVRPlayer.framework/DDYVRPlayer