le fichier a été construit pour les architectures i386 qui n'est pas l'architecture d'être lié (x86_64) lors de la compilation OpenCV2.2 pour iOS 4.2 sur Mac OSX 10.6
J'ai suivi le guide simple à http://www.atinfinity.info/wiki/index.php?OpenCV/Using%20OpenCV%202.2%20on%20iOS%20SDK%204.2 (qui utilise le plus vieux guide, j'ai aussi lu à http://niw.at/articles/2009/03/14/using-opencv-on-iphone/en) pour obtenir OpenCV2.2 compilé sur l'iOS 4.2. Tout s'est bien passé jusqu'à ce que j'ai essayé de construire. Quand je lance le suivant:
lc:opencv_simulator leonard$ ../opencv_cmake.sh Simulator ../../OpenCV-2.2.0/
J'obtiens l'erreur suivante:
ld: warning: in /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.2.sdk/usr/lib/libSystem.dylib,
file was built for i386 which is not the architecture being linked (x86_64)
C'est à l'aide de (entre autres paramètres, évidemment):
-D CMAKE_OSX_ARCHITECTURES="i386"
J'ai lu que sur OSX 10.6 i386 est considérée comme la valeur par défaut, de sorte qu'il utilise le système par défaut (mais c'est x86_64). J'ai aussi lu que je pouvais utiliser:
export CFLAGS=-m32
export CPPFLAGS=-m32
Mais cela ne fonctionne pas non plus.
Des idées?
OriginalL'auteur LeonardChallis | 2011-03-07
Vous devez vous connecter pour publier un commentaire.
La gcc drapeau pour la construction d'une architecture spécifique est
-march
comme dans-arch i386
Je suis en utilisant cmake - comment puis-je la force de gcc pour utiliser le drapeau lors de l'utilisation de cmake?
Challis: Probablement le mettre dans la variable CFLAGS comme vous le faisiez avec -m32
OriginalL'auteur JeremyP