Ce que j'essaie de faire
Intégrer Zxing Le framework de lecture de code QR, dans mon projet iPhone. J'ai consulté le sdk ZXing de aquí . J'ai exécuté le projet d'exemple fourni avec ZXing, nommé ScanTest, sans aucun problème. Mais lorsque j'essaie d'intégrer la bibliothèque à mon projet, j'obtiens l'erreur mentionnée.
Spécification du projet
- Système d'exploitation cible iOS 6.0
- Cible de déploiement iOS 5.0 ou supérieur.
- Testé sur : iPhone 4 et iPhone 3GS.
- Xcode : Xcode 4.5.1
- Version ZXing : 2.0
Problème
Lorsque je construis, après avoir effectué toutes les étapes d'intégration dans Fichier readme de ZXing J'obtiens des erreurs de construction telles que
Undefined symbols for architecture armv7:
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
zxing::qrcode::Detector::computeDimension(zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, zxing::Ref<zxing::ResultPoint>, float) in libZXingWidget.a(Detector-B8B28E953F840D47.o)
Undefined symbols for architecture armv7:
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
zxing::Exception::Exception(char const*) in libZXingWidget.a(Exception.o)
zxing::common::StringUtils::guessEncoding(unsigned char*, int, std::map<unsigned int, std::string, std::less<unsigned int>, std::allocator<std::pair<unsigned int const, std::string> > >
Il y a 27 erreurs de ce type. Je n'ai copié que les deux premières.
Qu'est-ce que j'ai découvert ?
Eh bien, je suis passé par este , este , este , este , este , este , este threads dans stackoverflow, tous avec le même message d'erreur. Aucune des solutions n'a fonctionné pour moi.
Puis j'ai trouvé ce fil de discussion fermé dans les forums de ZXing discutant du même problème. D'après cette discussion, voici quelques solutions possibles (qui ont fonctionné pour certains)
La première erreur est (probablement) due au fait que vous n'avez pas renommé main.m en main.mm. La deuxième erreur est (probablement) due au fait que vous n'établissez pas de lien avec la bibliothèque de widgets
J'ai également renommé mon main.m, j'ai vérifié si j'avais ajouté la bibliothèque et j'ai constaté que je l'avais fait. Ce n'est donc pas le cas.
A Architectures de la bibliothèque à "Standard (armv7, armv7s)" pour correspondre à mon projet principal, j'ai pu compiler l'application avec succès.
L'architecture de mon projet, de ma cible et de ma bibliothèque (pour le débogage, la distribution et la mise en production) est la suivante Standard (armv7, armv7s)
. Il n'y a donc pas de chance de ce côté-là non plus.
Ils ont ensuite clôturé le dossier en disant ceci,
Les projets zxing ont été mis à jour pour ajouter l'archive armv7s et supprimer l'archive armv6. Ces changements sont nécessaires (1) pour construire pour le iPhone 5 qui est armv7s et (2) pour construire tout court puisque Xcode 4.5 ne pas de support pour armv6. Si vous avez vos propres fichiers de projet, vous devrez faire ces changements vous-même. Ce sont des changements généraux pas spécifiques à zxing, donc si vous avez des problèmes, vous obtiendrez plus d'aide dans un forum général comme StackOverflow.
Me voici donc sur StackOverflow.
Encore un point
Dans l'intégration de ZXing Fichier README La première étape de l'intégration est la suivante,
1) Localisez le fichier "ZXingWidget.xcodeproj" sous "
zxing/iphone/ZXingWidget/
". Faites glisser ZXingWidget.xcodeproj et déposez-le à la racine de la barre latérale "Groupes et fichiers" de votre projet Xcode. A s'affiche -- assurez-vous que "Copy items" n'est pas coché et que "Reference Type" est "Reference Type" est "Relative to Project" avant de cliquer sur "Add". Vous pouvez également faire un clic droit sur le navigateur de votre projet et sélectionner Ajouter des fichiers à "MonProjet"".
Lorsque j'ai fait glisser le fichier ZXingWidget.xcodeproj dans mon projet, il n'y a pas eu de dialogue. Le projet s'est directement ajouté au projet et je n'ai pas pu définir les propriétés "copy items" et "Reference Type". Je ne sais pas s'il s'agit d'une nouvelle fonctionnalité de Xcode 4.5 ou d'un bug. C'est la seule étape que je n'ai pas pu suivre correctement selon le fichier README.
Vous disposez de toutes les informations dont je dispose. Cela fait six heures que j'essaie de résoudre ce problème. Une idée ?
0 votes
Bonjour, j'ai intégré le projet avec l'aide de vos commentaires.mais je rencontre toujours des erreurs après l'intégration réussie.j'ai exécuté le scan test(type de code dans notre projet) exemple aussi mais j'ai essayé les exemples de code-barres.j'ai importé quelques fichiers de BarcodeExample.j'ai obtenu une définition d'interface en double d'une classe "ResultParser".comment puis-je résoudre ce problème ?
0 votes
Pour moi, il s'agissait d'ajouter libc++.dylib à mon projet, voir : stackoverflow.com/questions/15070556/