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 ...
Quel est le statut de ce bug? Je le vois encore dans Xcode 4.0.2. – an0