2010-10-08 7 views
1

J'ai suivi les instructions du README, ils sont très simplesIo ne compile pas sous Mac OS X Snow Leopard

cd build 
cmake .. 
make install 

Le problème se produit après la commande make install. Io ne compilera pas, notamment à cause du module CFFI. ld se plaint que mon libffi.dylib n'est pas 64 bits, et donc il ne sera pas un lien entre les fichiers .o, et à cause de cela, il se plaint alors que tel ou tel symbole est pas défini, etc.

ld: warning: in /opt/local/lib/libffi.dylib, file was built for i386 which is not the architecture being linked (x86_64) 

Comment puis-je résoudre ce problème? Existe-t-il un moyen de compiler Io en 32 bits, en passant des paramètres à make, cmake ou en éditant un fichier? Le Makefile a une entrée pour l'addon CFFI. Pourrais-je juste le supprimer? où puis-je obtenir un libcffi 64 bits? cette bibliothèque fournit une API pour accéder aux appels de fonctions de bas niveau pour les langages de plus haut niveau, donc je ne suis pas si sûr de remplacer mon 32 bits par un 64 bits, cela peut casser mon MacRuby ou autre. Je voudrais pouvoir le construire avec le CFFI et tous les addons possibles qui peuvent fonctionner dans mon système, pour être capable de faire plus de choses: je suis intéressé par les bindings d'objectif-c, qui, je suppose, peuvent nécessiter des cffi.

Répondre

1

Sur le Mac, vous pouvez compiler en 32 bits uniquement en définissant CMAKE_OSX_ARCHITECTURES = i386 dans votre cache CMake.

Exécutez "cmake-gui". dans l'arborescence de construction, puis modifiez CMAKE_OSX_ARCHITECTURES en i386. Ensuite, faites une construction propre. Vous devriez vous retrouver avec des binaires 32 bits à ce stade.

Sur d'autres systèmes d'exploitation (Linux, Windows), il existe différentes techniques pour obtenir des versions 32 bits sur des systèmes 64 bits. Ils impliquent soit de passer certains drapeaux au compilateur (-m32 -m64 pour gcc) soit d'utiliser le bon générateur CMake (Visual Studio 9 2008 vs. Visual Studio 9 2008 Win64).

Questions connexes