2013-07-29 2 views
7

Я должен включить флаг -ObjC в «Другие флаги компоновщика» в Xcode для использования стороннего компонента. Однако, как только я добавить этот флаг, я получаю убивание ошибок, которые выглядят следующим образом:-Флаг компоновщика ObjC вызывает ошибки повторяющихся символов

duplicate symbol _OBJC_IVAR_$_GAI.defaultTracker_ in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAI.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAI.o) 
    duplicate symbol _OBJC_IVAR_$_GAI.dispatcher_ in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAI.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAI.o) 
... 
    duplicate symbol _OBJC_CLASS_$_GAIDispatcher in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAIDispatcher.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o) 
    duplicate symbol _OBJC_METACLASS_$_GAIDispatcher in: 
     /MyApp/GoogleAnalytics/libGoogleAnalytics.a(GAIDispatcher.o) 
     /MyApp/GoogleAnalytics/libGoogleAnalytics_debug.a(GAIDispatcher.o) 
    ld: 212 duplicate symbols for architecture armv7s 

Опять же, все это исчезает, если я не использую -ObjC флага. Кажется, что это связано с библиотекой Google Analytics. Как мне обойти это?

+2

кажется, что вы включили _both_ отладки и нормальной версии аналитической библиотеки – nielsbot

+0

Google правда, но Деб ug библиотека необходима для отладки, очевидно. Я не получаю эти ошибки, когда я не использую флаг -ObjC. – soleil

ответ

7

Отредактируйте конфигурации выпуска и отладки вашей цели сборки. Включите отладочную версию библиотеки в конфигурацию отладки и не отладочную версию для цели выпуска. Не включайте оба в одну конфигурацию - вот почему вы получаете повторяющиеся символы.

Удалите две библиотеки из ваших целей сборки, например:

remove libraries from build targets

Тогда поиск «другие флаги компоновщика» в настройках вашей цели построить и добавить «-lGoogleAnalytics_debug» для конфигурации отладки и «- lGoogleAnalytics»для конфигурации Release, например:

set linker flags for debug and release configs

+0

Как установить libGoogleAnalytics_debug.a только для включения в конфигурацию отладки? – soleil

+0

Я думаю, что есть настройка сборки для управления вариантами библиотек ... (но может работать только для динамически загружаемых библиотек) – nielsbot

+0

Вы можете попробовать удалить библиотеку со своей фазы сборки библиотеки, а затем установить флажок «Другие флаги компоновщика» (__OTHER_LDFLAGS__) ссылка на правильную __libGoogleAnalytics__ – nielsbot

Смежные вопросы