我有以下问题:我正在链接Admob库,其中包含GData API的某些部分。但我也想与GData静态库链接,直接在我自己的应用程序中使用它。
当然,我在链接时会得到重复的符号。
我该如何避免?
答案 0 :(得分:2)
Objective-C GData库包含一个标头GDataTargetNamespace.h,其中包含用于重新定义库中每个类的宏。
您可以在项目中包含标题,并在目标构建设置中定义前缀,例如
-DGDATA_TARGET_NAMESPACE = MyApp的
这将为您的应用程序添加GData库中每个类的前缀。
但这确实是Admob库中的一个错误。
答案 1 :(得分:0)
没有办法做到这一点。您可能想要阅读我的相关答案here。基本上只有一种方法可以做到这一点:修改Admob库,使其使用相同的GData静态库。
第二个想法,我会说你也可以在运行时加载任何一个库。名称冲突将持续存在,但每个Objective-C符号将被覆盖。不确定这是否真的有效。第一种方法也更好。