2010-09-17 96 views
0

我遇到以下問題:我正在鏈接包含GData API一部分的Admob庫。但我也想鏈接到GData靜態庫,直接在我自己的應用程序中使用它。兩個庫之間的重複符號

當然,我在鏈接時得到重複的符號。

我該如何避免這種情況?

回答

2

Objective-C的GData庫包含一個頭文件GDataTargetNamespace.h,它帶有宏來重新定義庫中的每個類。

您可以在您的項目的標題和你的目標構建定義設置的前綴,像

-DGDATA_TARGET_NAMESPACE = MyApp來

這將前綴添加到每個班級中的GData庫爲您的應用。

雖然這確實是Admob庫中的一個錯誤。

+0

就我所能確定的,AdMob不在他們的庫中使用GData,所以也許衝突來自其他來源。 – 2010-09-23 06:12:33

+0

如何在我的項目中包含標題請詳細描述。請參閱http://stackoverflow.com/questions/18486349/duplicate-symbol-in-admob-static-library – BADRI 2013-08-28 11:42:29

0

沒有辦法做到這一點。您可能想閱讀我的相關答案here。基本上只有一種方法可以做到這一點:修改Admob庫,使其使用相同的GData靜態庫。

第二個想法,我會說你也可以在運行時加載任何一個庫。名稱衝突將持續存在,但每個客體-C符號將被覆蓋。不確定這是否真的有效。第一種方法也更好。