Ошибка повторяющегося символа при связывании нескольких статических библиотек.

Уже есть немало связанных вопросов, но я просто не могу решить эту проблему. Я создаю приложение, включающее две отдельные статические библиотеки: RestKit и еще одну, которая находится в NDA. Когда я строю, я получаю ошибку компоновщика Apple Mach-O следующим образом:

duplicate symbol _NewBase64Decode 
in /Users/geraldwburke/Desktop/iOS Programming/MyApp/someLib.a(NSData+Base64.o) 
and /Users/geraldwburke/Library/Developer/Xcode/DerivedData/MyAppddlwzdeskfwaxyargomvfhurvxzi/Build/Products/Debug-iphoneos/libRestKit.a(NSData+Base64.o) 
for architecture armv7

Теперь я видел некоторые потенциальные исправления. Эта статья показалась многообещающей . Я также попытался добавить правило сборки, используя скрипт из этого блога. запись. Я пробовал добавлять и удалять флаги компоновщика -ObjC, -all_load и -force_load. Что бы я ни пробовал, я все равно получаю ту же ошибку. Кто-нибудь знает, как это исправить?

Кстати, я удалю свой идентичный пост. Разместил не на тот акк.


person geraldWilliam    schedule 03.03.2012    source источник


Ответы (1)


Самое простое решение — изменить исходный код одной из этих библиотек, чтобы не определять NewBase64Decode. RestKit имеет открытый исходный код; Я не знаю, есть ли у вас исходный код вашей секретной библиотеки NDA.

person rob mayoff    schedule 03.03.2012
comment
Измените исходный код, чтобы не определять NewBase64Decode, или измените NewBase64Decode на что-то другое (возможно, MyNewBase64Decode!) - person sherlock; 09.10.2012