Come posso fare in modo che le installazioni di Ruby Gems su Windows utilizzino MinGW per creare e compilare?

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

Domanda

Sto cercando di aggiornare alcune gemme su un computer Windows e ottengo continuamente questo output di errore per gemme che non hanno binari precompilati:

Opzioni di configurazione fornite:

    --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

Queste sono opzioni di configurazione fornite al file rub extconf.rb durante l'installazione della gemma.

Ho installato MinGW , quindi dovrei avere tutto il necessario per installare, creare e compilare queste gemme.
Tuttavia, non so come modificare la configurazione per RubyGems in modo che quando viene chiamato extconf.rb includa le opzioni appropriate che puntano a MinGW include directory.

È stato utile?

Soluzione

C'è un DevKit che potrebbe essere quello che cerchi.

Altri suggerimenti

Non so se questo funziona con Windows Ruby nativo, ma se usi la versione Cygwin e hai installato un Cygwin completo (compilatori ecc.) allora non dovresti avere problemi - siamo stati in grado di usare molte gemme che richiedono materiale compilato.

Yardboy,

Peccato che non hai menzionato quale gemma stai cercando di aggiornare, hai solo messo lì le opzioni di output.

Inoltre, alcune di queste gemme hanno bisogno di intestazioni e librerie di sviluppo, non solo del compilatore (MinGW).

Inoltre, MinGW funzionerà fino a quando la build Ruby che hai è stata creata con MinGW.

C'è qualche lavoro da fare per facilitare questo, ma i requisiti di compilatore, intestazioni e librerie sono necessari su tutte sulle piattaforme, non solo su Windows.

Puoi trovare maggiori informazioni e risorse sul il mio blog

Saluti.

Ho avuto lo stesso problema.

L'unico modo in cui ho scoperto di ottenere gemme che non avevano binari precompilati - come parsetree - da eseguire su Windows era di ricompilare il sorgente Ruby usando Mingw e di copiare diverse librerie e applicazioni dall'installazione Visual c ++ I già avuto. Ciò che ho copiato includeva la libreria zlib, la libreria iconv e l'applicazione.

Nota: sto usando questa configurazione come configurazione di prova. Non userei un tale setup per la produzione (dal momento che chissà cosa succede quando si fa una libreria da una distribuzione all'altra).

In generale, nella mia esperienza, il codice progettato per un sistema unix può essere molto difficile da far funzionare su MinGW. Per una porta veloce, usa CygWin. Oppure esegui una porta completa del software sull'host Windows, incluso l'uso della shell di Windows nativa e dell'API del sistema operativo, il che è piuttosto costoso in termini di tempo, ma paga se prevedi di supportare Windows a lungo termine.

Non ho familiarità con questo particolare pacchetto software, questa è solo un'osservazione generale sul tentativo di trasferire su Windows alcuni altri frammenti di codice.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top