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

Уже существует немало связанных вопросов, но я просто не могу решить их. Я создаю приложение, которое включает две отдельные статические библиотеки: 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. Независимо от того, что я пробовал, я все равно получаю ту же ошибку. У кого-нибудь есть идеи как это исправить?

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

1 Ответ

3 голосов
/ 03 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...