我需要在 Xcode 的“其他链接器标志”中包含 -Objcflags才能使用第 3 方组件。但是,一旦我添加了这个标志,我就会收到一系列如下所示的错误:
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
同样,如果我不使用 -Objcflags,这一切都会消失。它似乎与 Google Analytics 库有关。我该如何解决这个问题?
最佳答案
编辑构建目标的发布和调试配置。在调试配置中包括库的调试版本,以及发布目标的非调试版本。不要在同一配置中同时包含这两者——这就是您获得重复符号的原因。
从构建目标中删除这两个库,例如:
然后在构建目标的设置中搜索“其他链接器标志”,并为调试配置添加“-lGoogleAnalytics_debug”,为发布配置添加“-lGoogleAnalytics”,例如:
关于ios - -ObjC 链接器标志导致重复符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17931020/