iOS的靜態庫我作出這樣的要求SDWebImage
靜態庫libA.a
,我想添加libA.a
到項目B,已經有SDWebImage
,進而導致duplicate symbol error
。具有相同的第三方的lib導致重複的符號錯誤
更新:我不能只從ProjectB
刪除SDWebImage
,兩者SDWebImage
有不同的版本,並在SDWeImage
有ProjectB
做出一些自定義更改。
有沒有什麼辦法可以在靜態庫和項目中使用同名的第三方?
謝謝。
iOS的靜態庫我作出這樣的要求SDWebImage
靜態庫libA.a
,我想添加libA.a
到項目B,已經有SDWebImage
,進而導致duplicate symbol error
。具有相同的第三方的lib導致重複的符號錯誤
更新:我不能只從ProjectB
刪除SDWebImage
,兩者SDWebImage
有不同的版本,並在SDWeImage
有ProjectB
做出一些自定義更改。
有沒有什麼辦法可以在靜態庫和項目中使用同名的第三方?
謝謝。
請參考this similar question和Avoiding duplicate symbol issues when using common utilities within a static library
總之,這可以通過添加一系列-DOldSymbol = NewSymbol標誌,以項目B的「其他C標誌」構建設置來解決。
我也有使用兩個第三方庫相同的問題。我通過在構建設置中從「Other Linker Flags」中刪除all_load
來解決此問題。
您可以從** ProjectB **中刪除'SDWebImage',因爲它已經在'libA.a' – JeanLuc
@JeanLuc我無法從ProjectB中刪除SD,因爲ProjectB中的SD已經進行了一些自定義更改,並且版本的兩個SD不一樣。 – fannheyward
哦,在這種情況下,我會重新命名已修補的SDWebImage類 – JeanLuc