¿Cómo puedo aislar los símbolos de las bibliotecas C / C ++ / ObjC de terceros?
Tengo un proyecto que necesita incorporar dos bibliotecas de terceros, libA y libB. Tengo poca o ninguna influencia sobre las bibliotecas de terceros. El problema es que tanto libA como libB incluyen diferentes versiones de una biblioteca común, ASIHTTPRequest. Como resultado, recibo errores como:
-[ASIFormDataRequest setNumberOfTimesToRetryOnTimeout:]: unrecognized selector sent to instance 0x3b4170
, que solo puedo suponer que se debe a que libA se refiere a la implementación de ASIHTTPRequest de libB (o al revés).
He intentado jugar constrip -s <symbol file> -u <library>
para aislar los símbolos de las bibliotecas entre sí, pero eso da como resultado que el enlazador de XCode escupe miles de advertencias y en realidad no soluciona el problema principal descrito anteriormente.
ld: warning: can't add line info to anonymous symbol anon-func-0x0 from ...
En general, ¿cómo se puede / se debe aislar las bibliotecas entre sí?