2016-09-20 4 views
1

Exécution xcodebuild -target szapp retours:build debug de ligne de commande projet Undefined symbols pour l'architecture i386

CONFIGURATION_BUILD_DIR=$/Users/szmall/Documents/new12/trunk/head/ShiZu -configuration Debug build -sdk iphonesimulator9.2 ONLY_ACTIVE_ARCH=NO VALID_ARCHS='arm64 armv7s armv7 i386' 
build my project have this error: 
Undefined symbols for architecture i386: 
    "_OBJC_CLASS_$_QQApiAudioObject", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_QQApiImageObject", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_QQApiInterface", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_QQApiNewsObject", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_QQApiTextObject", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_QQApiVideoObject", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_SendMessageToQQReq", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
    "_OBJC_CLASS_$_TencentOAuth", referenced from: 
     objc-class-ref in libSocialQQ.a(UMSocialQQHandler.o) 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

mais libSocialQQ.a existe sur le lien avec les bibliothèques binaires.

Et d'utiliser xcode exécuter mon projet peut réussir. S'il vous plaît aidez-moi, Merci!

+0

Le problème a été résolu. libSocialQQ.a ne contient pas de code pour i386, mais il contient du code pour x86_64.So peut utiliser la ligne de commande suivante: xcodebuild -target szapp CONFIGURATION_BUILD_DIR = $/Users/szmall/Documents/new12/trunk/head/ShiZu -configuration Configuration Debug -sdk iphonesimulator9.2 ONLY_ACTIVE_ARCH = NON VALID_ARCHS = 'arm64 armv7s armv7 x86_64' – Gigi

Répondre

0

Supprimer i386 de Paramètres de construction de la cible -> Architectures -> Architectures valides, il n'est pas nécessaire de le spécifier. Mais si votre bibliothèque ne contient pas de code pour i386 - vous aurez des problèmes en essayant de l'exécuter sur des simulateurs plus anciens. Par ailleurs, vous pouvez vérifier les architectures prises en charge à l'aide de la commande lipo -info libSocialQQ.a.

+0

Merci Anton Malyshev. libSocialQQ.a ne contient pas de code pour i386. – Gigi

+0

mais, pourquoi il peut s'exécuter dans les simulateurs de xcode (7.2.1). – Gigi

+0

qui dépend du simulateur. Si vous choisissez un simulateur iPad Air ou iPhone 6 par exemple, Xcode construira l'application avec l'architecture x86_64. –