2010-09-23 3 views
3

Mon entreprise construit une application avec SDK 4.1 pour l'iPhone. Pour ce faire, nous avons 3 niveaux de dépendances de projet, notre application principale "CSM" se connecte à notre SDK appelé "csm-sdk" (dans libsrc_csmsdk.a) csm-sdk puis des liens vers notre bibliothèque XMLRPC ("libXMLRPC .une").iOS 4.1 SDK - Dupliquer des symboles dans plusieurs bibliothèques statiques Liaison pour les constructions de périphériques

Lors de la compilation de csm-sdk pour le périphérique, il inclut des définitions pour toutes les classes ObjC et des fonctions C pour deux bibliothèques XMLRPC. Ensuite, lorsque les liens CSM, il signale les objets en double dans le même fichier de bibliothèque.

Nous lions à tous les niveaux avec -all_load et -ObjC.

J'ai un autre projet qui fait quelque chose de similaire sur SDK 3.2, et tout fonctionne bien ... Et ce projet sur 4.1 en tant que simulateur de construire tout fonctionne bien, seul le périphérique échoue. Est-ce que quelqu'un a couru quelque chose de similaire?

Plus de détails ci-dessous.

Merci!

Glenn R. Martin

Construire Erreur:

ld: duplicate symbol _OBJC_METACLASS_$_XMLParser in /Users/builder/cc/workingdirs/iphoneclient/csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a(XMLParser.o) and /Users/builder/cc/workingdirs/iphoneclient/csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a(XMLParser.o) 
collect2: ld returned 1 exit status 
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 
ProcessProductPackaging "/Users/builder/Library/MobileDevice/Provisioning Profiles/6EB9AEE7-A844-4017-B076-06C3240F869B.mobileprovision" "build/Release-iphoneos/CSM.app/embedded.mobileprovision" 
    cd /Users/builder/cc/workingdirs/iphoneclient 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" 
    <com.apple.tools.product-pkg-utility> "/Users/builder/Library/MobileDevice/Provisioning Profiles/6EB9AEE7-A844-4017-B076-06C3240F869B.mobileprovision" -o "/Users/builder/cc/workingdirs/iphoneclient/build/Release-iphoneos/CSM.app/embedded.mobileprovision" 

ProcessProductPackaging dist.plist "build/CSM.build/Release-iphoneos/CSM.build/CSM.xcent" 
    cd /Users/builder/cc/workingdirs/iphoneclient 
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" 
    <com.apple.tools.product-pkg-utility> /Users/builder/cc/workingdirs/iphoneclient/dist.plist -entitlements -format xml -o "/Users/builder/cc/workingdirs/iphoneclient/build/CSM.build/Release-iphoneos/CSM.build/CSM.xcent" 

** BUILD FAILED ** 


The following build commands failed: 
CSM: 
    Ld "/Users/builder/cc/workingdirs/iphoneclient/build/CSM.build/Release-iphoneos/CSM.build/Objects-normal/armv6/CSM" normal armv6 
    Ld "/Users/builder/cc/workingdirs/iphoneclient/build/CSM.build/Release-iphoneos/CSM.build/Objects-normal/armv7/CSM" normal armv7 
(2 failures) 

Release BUILD failed 

décharge otool de l'appareil:

Archive : csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a (architecture armv7) 
Table of contents from: csm-sdk/build/Release-iphoneos/libsrc_csmsdk.a(__.SYMDEF) (for architecture armv7) 
size of ranlib structures: 1960 (number 245) 
size of strings: 6256 

object   symbol name 
XMLParser.o _OBJC_CLASS_$_XMLParser 
XMLParser.o _OBJC_METACLASS_$_XMLParser 
XMLParser.o .objc_class_name_XMLParser 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._asynchronousData 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._methodName 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._asynchronousConnection 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._asynchronous 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._asyncRequestInProgress 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._queueRequests 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._requestTimeout 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._serviceUrl 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._cachingPolicy 
XMLRPC.o  _OBJC_METACLASS_$_XMLRPC 
XMLRPC.o  .objc_class_name_XMLRPC 
XMLRPC.o  _OBJC_CLASS_$_XMLRPC 

... Clipped for Brevity ... 

CSMWebservice.o l_OBJC_LABEL_PROTOCOL_$_NSObject 
CSMWebservice.o l_OBJC_LABEL_PROTOCOL_$_XMLRPCDelegate 
XMLParser.o _OBJC_METACLASS_$_XMLParser 
XMLParser.o .objc_class_name_XMLParser 
XMLParser.o _OBJC_CLASS_$_XMLParser 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._methodName 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._asynchronousConnection 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._delegate 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._serviceUrl 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._queueRequests 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._requestTimeout 
XMLRPC.o  _OBJC_IVAR_$_XMLRPC._asynchronousError 
XMLRPC.o  .objc_class_name_XMLRPC 
XMLRPC.o  _OBJC_CLASS_$_XMLRPC 

décharge otool Simulator:

Archive : csm-sdk/build/Release-iphonesimulator/libsrc_csmsdk.a 
Table of contents from: csm-sdk/build/Release-iphonesimulator/libsrc_csmsdk.a(__.SYMDEF) 
size of ranlib structures: 1520 (number 190) 
size of strings: 5080 

object   symbol name 
CSMWebservice.o _OBJC_METACLASS_$_CSMWebservice 
CSMWebservice.o _OBJC_CLASS_$_CSMWebservice 
CSMWebservice.o l_OBJC_LABEL_PROTOCOL_$_NSObject 
XMLParser.o _OBJC_CLASS_$_XMLParser 
XMLParser.o _OBJC_METACLASS_$_XMLParser 
XMLParser.o .objc_class_name_XMLParser 
... No duplication, clipped for brevity ... 

Répondre

0

C'était un bug connu en 4.1, en fait quand je l'ai listé sur rdar, il était alors listé comme un doublon. Je suis informé qu'il a été récemment corrigé, j'espère juste que le correctif sortira dans la prochaine version.

+0

Quel est le statut de ce bug? Je le vois encore dans Xcode 4.0.2. – an0

0

Vous devez lier tous les éléments de votre cible de déploiement d'application finale et non les sous-objectifs individuels.

+0

Différents projets utilisent ceux-ci. Ainsi, ils ont également besoin de ces dépendances ... le CSM-SDK nécessite la bibliothèque XMLRPC. Le CSM-SDK sera utilisé dans d'autres projets, et la bibliothèque XMLRPC est maintenue comme un projet séparé, si Xcode ne peut pas gérer cette fonctionnalité, il ne devrait pas l'avoir, et en plus, 3.2 SDK l'a bien fait. – grmartin

+0

Je me demandais si quelqu'un connaissait un bug dans 4.1 (iOS SDK), ou une solution pour ce projet, nous le faisons dans d'autres bien, mais c'était pour le 3.2 SDK iOS. – grmartin

Questions connexes