GeckoGeek.fr

Paradigme d'un lézard

Lundi 24 Juillet 2017

Ruby binding : could not create makefile (Imlib2, Mysql, SQLite, …)

Par Lya le 04/12/2009 dans Programmation | 0 commentaire

Avec Snow Leopard, les langages interprétés (dont Ruby) tournent maintenant en 64 bits par défaut à condition que votre mac tourne lui aussi en 64 bits bien sûr.

SnowLeopardRuby

Pour tout ce qui est “langages” en eux mêmes et leurs librairies pures, il n’y a aucun problème. En revanche pour les extensions, vous risquez d’avoir quelques erreurs quand vous essayez de générer le makefile.

Could not create Makefile due to some reason,
probably lack of necessary libraries and/or headers.
Check the mkmf.log file for more details.
You may need configuration options.

Et en regardant un peu plus près dans les fichiers log des erreurs de ce style :

ld: warning: in /opt/local/lib/libfreetype.dylib, file is not of required architecture
ld: warning: in /opt/local/lib/libX11.dylib, file is not of required architecture
ld: warning: in /opt/local/lib/libXext.dylib, file is not of required architecture
…

C’est que vous avez sûrement utilisé la commande de configuration avec l’architecture par défaut (32 bits) ou en précisant une architecture 32 bits

[commande pour exécuter le fichier de configuration]
sudo env ARCHFLAGS="-arch i386" [commande pour exécuter le fichier de configuration]

Il vous suffit donc de préciser que tous les fichiers de votre langage sont en architecture 64 bits :

sudo env ARCHFLAGS="-arch x86_64" [commande pour exécuter le fichier de configuration]

Et tout devrait bien marcher :-)

Pour Ruby par exemple, ça vous permet de ré-installer les binding mysql, SQLite, imlib2, rmagick, et autres du même genre.


Laisser un commentaire