两个库之间的重复符号

时间:2010-09-17 06:50:58

标签: iphone objective-c linker static-libraries

我有以下问题:我正在链接Admob库,其中包含GData API的某些部分。但我也想与GData静态库链接,直接在我自己的应用程序中使用它。

当然,我在链接时会得到重复的符号。

我该如何避免?

2 个答案:

答案 0 :(得分:2)

Objective-C GData库包含一个标头GDataTargetNamespace.h,其中包含用于重新定义库中每个类的宏。

您可以在项目中包含标题,并在目标构建设置中定义前缀,例如

-DGDATA_TARGET_NAMESPACE = MyApp的

这将为您的应用程序添加GData库中每个类的前缀。

但这确实是Admob库中的一个错误。

答案 1 :(得分:0)

没有办法做到这一点。您可能想要阅读我的相关答案here。基本上只有一种方法可以做到这一点:修改Admob库,使其使用相同的GData静态库。

第二个想法,我会说你也可以在运行时加载任何一个库。名称冲突将持续存在,但每个Objective-C符号将被覆盖。不确定这是否真的有效。第一种方法也更好。