Salve, Devo sviluppare alcune CGI.Cio' nonostante, per svolgere questo compito di sviluppo, mi torna piu' pratico Per tenere tutto molto semplice, non prevedo di usare neanche sistemi di supporto alla compilazione quali cmake e make. Mi chiedevo se per garantirmi la massima compatibilità tra lo sviluppo su windows e la produzione su linux sia meglio utilizzare -- o ----------------- Andrea Peri . . . . . . . . . qwerty àèìòù ----------------- _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 657 iscritti al 30.5.2013 |
On Mon, 24 Jun 2013 07:08:04 +0200, Andrea Peri wrote:
> Salve, > > Devo sviluppare alcune CGI. > Le quali sono destinate a essere eseguite su piattaforma linux. > > Cio' nonostante, per svolgere questo compito di sviluppo, mi torna > piu' pratico > lavorare su windows e poi trasferire il sorgente su linux solo per > la > compilazione finale quando tutto è posto. > > Per tenere tutto molto semplice, non prevedo di usare neanche sistemi > di supporto alla compilazione quali cmake e make. > > Mi chiedevo se per garantirmi la massima compatibilità tra lo > sviluppo su windows e la produzione su linux sia meglio utilizzare > cygwin oppure mingw . > Ciao Andrea, possiamo riassumere la situazione in questo modo: - su Linux di fatto esiste un unico compilatore C/C++, cioe' GCC inoltre esistono svariati strumenti standard di supporto come MAKE, AUTOMAKE oppure CMAKE: complessivamente hai un ricchissimo set di strumenti che rendono molto semplice (e molto robusto) fare sviluppo in modo facilmente portabile, anche cross-platform. inoltre quasi tutte le distro di GCC per Linux funzionanon anche come cross-compilers: quindi puoi fare la build di eseguibili binari per Windows perfettamente funzionanti direttamente su Linux (si, e' realta', non e' fantascienza) GCC (e tutti i relativi strumenti di supporto) sono disponibili anche su Windows, ma in due "salse" differenti: - Cygwin e' abbastanza "vecchierello", esiste da oltre 15 anni; in pratica e' quasi un intero sistema operativo, che ha lo scopo di mettere a disposizione anche sotto Windows un ambiente standard POSIX assolutamente completo. insomma, se usi Cygwin e' quasi come se tu stessi usando una piattaforma strettamente Linux-like appoggiata su Windows - MinGW e' molto piu' recente, ed e' semplicemente un derivato evoluto di Cygwin. non pretende affatto di supportare tutto POSIX completo, ed invece preferisce appoggiarsi direttamente sulle librerie di sistema Microsoft. ne risulta un sistema un po' meno portabile (le API MS non sono POSIX, ed in alcuni casi divergono anche fortemente), ma molto piu' leggero (non e' necessario installare un intero sistema operativo aggiuntivo, ma solo alcuni componenti base). ne deriva una differenza fondamentale a run-time: - un eseguibile binario compilato da MinGW e' virtualmente indistinguibile da qualsiasi altro eseguibile compilato usando il sistema di sviluppo nativo Microsoft (MSVC) - al contrario, tutti gli eseguibili compilati da Cygwin richiedono anche a run-time il supporto di emulazione POSIX; dato che questo e' disponibile solo sotto licenza GPL, ne potrebbero derivare grossi problemi legali per la redistribuzione se il codice della tua app usa una licenza non compatibile con la GPL. ed in ogni caso installare sw generato con Cygwin e' sempre piu' rognoso e complesso che installare sw generato da MinGW ma ne derivano anche conseguenze per lo stile di sviluppo del codice: - se usi Cygwin il codice dovrebbe essere virtualmente identico sia per Linux che per Cygwin - se usi MinGW invece e' praticamente inevitabile che qua e la occorra definire qualche macro condizionale: #ifdef .. #else ... #endif in qualche caso (abbastanza raro) potresti anche essere costretto a scrivere pezzi di codice lunghi e complessi per aggirare alcune limitazioni intrinseche di Windows. conclusione: in genere per sviluppi professionali si preferisce usare sempre MinGW piuttosto che Cygwin. se non altro perche' rende molto piu' semplice installare il sw prodotto. ma anche perche' non appesantisce la configurazione di runtime: a volte l'emulazione POSIX richiesta da Cygwin potrebbe anche introdurre dei colli di bottiglia penalizzanti per le prestazioni complessive. ma se non capisco male, invece a te interessa piu' che altro una "piattaforma personale" da usare solo durante lo sviluppo per mettere a punto il codice che poi farai girare su Linux. possibilmente in modo tale da minimizzare le differenze tra le due piattaforme. allora forse in questo caso Cygwin e' la soluzione piu' adatta per i tuoi scopi. ciao Sandro -- Il messaggio e' stato analizzato alla ricerca di virus o contenuti pericolosi da MailScanner, ed e' risultato non infetto. _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 657 iscritti al 30.5.2013 |
Free forum by Nabble | Edit this page |