Comment faire pour que les installations Ruby Gems sous Windows utilisent MinGW pour la création et la compilation?

StackOverflow https://stackoverflow.com/questions/168186

Question

Essayer de mettre à jour des gems sur un ordinateur Windows et j'obtiens continuellement cette sortie d'erreur pour les gems qui n'ont pas de fichiers binaires précompilés:

Options de configuration fournies:

    --with-opt-dir
    --without-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --srcdir=.
    --curdir
    --ruby=c:/server/ruby/bin/ruby

Il s’agit d’options de configuration fournies au fichier ruby ?? extconf.rb lors de l’installation du gem.

J'ai installé MinGW et je devrais donc disposer de tout ce dont j'ai besoin pour installer, créer et compiler ces gemmes.
Cependant, je ne sais pas comment changer la configuration de RubyGems afin que, lorsque extconf.rb est appelé, il inclue les options appropriées pointant vers MinGW répertoire d'inclusion.

Était-ce utile?

La solution

Il existe un DevKit qui pourrait bien être ce que vous recherchez.

Autres conseils

Je ne sais pas si cela fonctionne avec le Windows Ruby natif, mais si vous utilisez la version Cygwin et si vous avez un Cygwin complet installé (compilateurs, etc.), vous ne devriez pas rencontrer de problèmes - nous avons pu utiliser beaucoup de gemmes qui nécessitent des trucs compilés.

Yardboy,

Dommage que vous n'ayez pas mentionné la gemme que vous essayez de mettre à jour, vous n'y mettez que la sortie des options.

De plus, certains de ces joyaux ont besoin d’en-têtes et de bibliothèques de développement, pas seulement du compilateur (MinGW).

De plus, MinGW fonctionnera tant que la version Ruby que vous possédez est créée avec MinGW.

Des efforts sont en cours pour résoudre ce problème, mais des exigences en matière de compilation, d’en-têtes et de bibliothèques sont nécessaires sur toutes les plates-formes, pas seulement Windows.

Vous trouverez plus d'informations et de ressources sur mon blog

.

A bientôt.

J'ai eu le même problème.

Le seul moyen que j’ai trouvé pour exécuter des fenêtres sur des gemmes n’ayant pas de binaires pré-compilés, comme parsetree, était de recompiler le code source Ruby à l’aide de Mingw et de copier plusieurs bibliothèques et applications à partir de Visual C ++. I déjà eu. Ce que j'ai copié incluait la bibliothèque zlib, ainsi que la bibliothèque et l'application iconv.

Remarque: j’utilise cette configuration comme configuration de test. Je ne voudrais pas utiliser une telle configuration pour la production (puisque qui sait ce qui se passe lorsque vous passez d’une bibliothèque à une autre).

En général, selon mon expérience, le code conçu pour un système unix peut être très difficile à exploiter sur MinGW. Pour un portage rapide, utilisez CygWin. Ou effectuez un portage complet du logiciel sur l’hôte Windows, en utilisant notamment l’environnement Windows shell et l’API du système d’exploitation, ce qui est très coûteux en temps, mais il est rentable de prendre en charge Windows à long terme.

Ce logiciel ne vous est pas familier. Il s'agit simplement d'une observation générale sur la tentative de transfert de certains éléments de code ignobles vers Windows.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top