2012-03-03 4 views
5

Il existe déjà un certain nombre de questions connexes, mais je n'arrive tout simplement pas à résoudre ce problème. Je construis une application qui inclut deux bibliothèques statiques séparées: RestKit et une autre qui est sur NDA. Quand je construis, je reçois une erreur de linker Mach-O Apple comme suit:Erreur de symbole en double lors de la liaison de plusieurs bibliothèques statiques.

duplicate symbol _NewBase64Decode 
in /Users/geraldwburke/Desktop/iOS Programming/MyApp/someLib.a(NSData+Base64.o) 
and /Users/geraldwburke/Library/Developer/Xcode/DerivedData/MyAppddlwzdeskfwaxyargomvfhurvxzi/Build/Products/Debug-iphoneos/libRestKit.a(NSData+Base64.o) 
for architecture armv7 

Maintenant, j'ai vu quelques corrections possibles là-bas. This article semblait prometteur. J'ai également essayé d'ajouter une règle de construction en utilisant le script de this blog entry. J'ai essayé d'ajouter et de supprimer les indicateurs de liens -ObjC, -all_load et -force_load. Peu importe ce que j'ai essayé, j'ai toujours la même erreur. Est-ce que quelqu'un a une idée de comment résoudre ce problème?

BTW Je vais supprimer mon article identique. Posté sur le mauvais acct.

Répondre

3

La solution la plus simple consiste à modifier le code source de l'une de ces bibliothèques pour et non pour définir NewBase64Decode. RestKit est open source; Je ne sais pas si vous avez la source de votre bibliothèque secrète NDA.

+0

Modifier le code source en _not_ définir NewBase64Decode ou changer NewBase64Decode en quelque chose d'autre (MyNewBase64Decode peut-être!) – sherlock

Questions connexes