J'essaie de créer les bibliothèques statiques pour GRAPHVIZ pour les inclure dans une application iOS, mais je ne peux pas le faire fonctionner. Voici ce que j'ai fait jusqu'à présent, à l'aide de GraphViz 2.28.0], Xcode 4.1, OSX 10.7 et je cible le simulateur IOS.
J'ai trouvé Instructions de configuration de GLEN BASD et avec des suppositions informées a mis à jour ceux-ci à: p> Cela fonctionne, mais la "marque" fonctionne pendant un moment et des erreurs avec: p> Je ne comprends pas tout à fait toutes les spécifications de l'architecture, donc toute aide Pour que cela fonctionne, c'est le bienvenu. p> p>
3 Réponses :
Il semble que la liaison tente de créer un lien vers les bibliothèques système installées sur votre Mac. Ces bibliothèques vont tous être compilées pour i386 ou X86_64 qui ne fonctionneront pas lors de la compilation de bibliothèques pour iPhone. Vous devrez reconfigurer la liaison pour relier les bibliothèques qui viennent dans l'iPhone SDK. P>
Il convient également de noter que vous devrez probablement compiler la bibliothèque deux fois - une fois en tant que ARMV6 et à nouveau comme ARMV7. L'iPhone 3G et certaines des plus anciennes touches iPod utilisent l'architecture ARMV6, tandis que les plus récents iPhones utilisent l'architecture ARMV7. Une fois que vous avez compilé les bibliothèques sous les deux architectures, vous pouvez utiliser Lipo (type «Man Lipo» dans votre terminal pour plus d'informations) pour créer une seule bibliothèque statique avec les deux architectures. Si vous développez votre application à l'aide du simulateur iPhone / iPad, je vous suggère également de compiler une fois comme I386 afin que vous puissiez utiliser votre bibliothèque avec le simulateur. Encore une fois, Lipo peut créer une seule bibliothèque statique avec les 3 architectures de l'information. P>
Maintenant que le site Web de graphviz semble être inacceptable pour le moment. Je ne pouvais donc pas télécharger la bibliothèque et exécuter le script de configuration comme vous l'avez fait, mais je soupçonne qu'avant d'exécuter "faire", vous devez modifier les modifications suivantes. qui est produit par le script de configuration. Selon la version du SDK iOS que vous ciblez et quelle version de GCC vous avez sur votre machine, vous devrez peut-être modifier certaines des modifications ci-dessous afin de pouvoir être appropriées pour votre environnement. Les instructions ci-dessous vont construire pour ARMV6. Vous devrez modifier les paramètres à construire pour ARMV7 une fois que vous êtes prêt à aborder cette architecture. P>
trouver cc = cc et changez-le à: Cc = /developer/platforms/iphoneos.platform/developer/usr/bin/gcc-4.2 p>
Trouvez -arch i386 en Cflag et changez-le à: -arch armv6 p>
Trouver CFLAG et ajouter au début !!: -Systoot /Developer/platforms/iphoneos.platform/developer/sdks/iphoneos4.0.sdk p>
trouver partagée_ldflags = -arch i386 -Dynamiclib et le changer à: Partagé_ldflags = -arch armv6 -dynamiclib p>
Problème est imo que MKDEFS est exécuté pendant le processus de construction lui-même après sa création. Donc, si vous construisez pour ARMV6 ou ARMV7, le fichier ne peut pas être exécuté sur la ligne de commande de Mac OS X. Ma solution de contournement était de construire un MKDEFS pour l'architecture I386 (qui est également nécessaire pour le simulateur iPhone) et copiez-le dans la lib / Annuaire GVPR Après avoir obtenu cette erreur. Assurez-vous que le fichier n'a pas pu être écrasé et redémarrer la construction. P>
J'ai eu ce travail. Le script de construction échoue à la fin lorsqu'il a essayé de faire un exécutable car il est compilé pour I386 au lieu de X86 ou X86_64, mais toutes les bibliothèques construisent parfaitement.
# For iPhoneOS export DEV_iOS=/Developer/Platforms/iPhoneOS.platform/Developer export SDK_iOS=${DEV_iOS}/SDKs/iPhoneOS5.0.sdk export COMPILER_iOS=${DEV_iOS}/usr/bin export CC=${COMPILER_iOS}/gcc export CXX=${COMPILER_iOS}/g++ export LDFLAGS="-arch armv7 -pipe -Os -gdwarf-2 -no-cpp-precomp -mthumb -isysroot ${SDK_iOS}" export CFLAGS=${LDFLAGS} export CXXFLAGS=${LDFLAGS} export LD=${COMPILER_iOS}/ld export CPP=${COMPILER_iOS}/llvm-cpp-4.2 export AR=${COMPILER_iOS}/ar export AS=${COMPILER_iOS}/as export NM=${COMPILER_iOS}/nm export CXXCPP=${COMPILER_iOS}/llvm-cpp-4.2 export RANLIB=${COMPILER_iOS}/ranlib ./configure --host=arm-apple-darwin11 --disable-dependency-tracking --enable-shared=no --enable-static=yes --enable-ltdl-install=no --enable-ltdl=no --enable-swig=no --enable-tcl=no --with-codegens=no --with-fontconfig=no --with-freetype2=no --with-ipsepcola=yes --with-libgd=no --with-quartz=yes --with-visio=yes --with-x=no --with-cgraph=no
Veuillez consulter Stackoverflow.com/Questtions/10941247/... en fonction de votre réponse