Pagina 1 di 1

compilazione su linux e su windows

Inviato: giovedì 13 novembre 2008, 22:28
da squire
Salve a tutti, ho una curiosità da sottoporre a chi volesse rispondermi.
Il mio quesito è questo: se scrivo un codice ad esempio in C++, questo stesso codice lo posso compilare così com'è su sistemi linux, windows e mac indifferentemente?
Questa domanda nasce da alcune costatazioni; ad esempio io ho sia win sia lin, ed ho scaricato ed installato in tutti e due skype; ma quest'ultimo a seconda degli OS cambia: nel win sembra più sofisticato, graficamente migliore (a mio parere) con più funzioni, nella versione lin è più semplice e con meno funzioni (anche se adesso mi sembra che lo abbiano implementato); se fosse vero che lo stesso codice lo si può passare sia su compilatori lin sia su quelli win dovrebbe essere identico nelle due versioni, vero? dovrebbe essere graficamente e funzionalmente uguale.
Altro esempio: firefox; di questo esistono le versioni lin e win (e credo anche MAC) ma in questo caso sembrano molto simili tra loro se non proprio uguali per funzinalità e grafica (forse c'è qualche piccola differenza ma minima).
Altra considerazione: se è vero che basta passare il codice sotto compilatori per il SO in uso, dovrebbe essere facile avere sempre i file di istallazione dei vari hardware in commercio (se è così semplice sarebbe assurdo che i vari costruttori non rilascino i drivers anche per il lin) perchè si tratterebbe di un attimo per "fabbricarli".
Cosa mi dite?
Aggiungo che io mi sono appena affacciato al mondo della programmazione e dei compilatori (C++) facendo dei programmini "per bambini", e non sono assolutamente "esperto" (come avrete capito); ho solo visto come si compila e ho visto qualche codice sorgente, da cui è nata la mia curiosità.
Ciao a tutti.

Re: compilazione su linux e su windows

Inviato: giovedì 13 novembre 2008, 22:39
da Ikitt
squire ha scritto: Il mio quesito è questo: se scrivo un codice ad esempio in C++, questo stesso codice lo posso compilare così com'è su sistemi linux, windows e mac indifferentemente?
Il codice in quanto tale si, il problema e` che l'infrastruttura cui il software si poggia non e` detto sia disponibile su ogni sistema operativo (la prima cosa che mi viene in mente: i thread).
Dato che (quasi) ogni software non banale si appoggia a librerie particolari, il conto e` presto fatto.
Altra considerazione: se è vero che basta passare il codice sotto compilatori per il SO in uso, dovrebbe essere facile avere sempre i file di istallazione dei vari hardware in commercio (se è così semplice sarebbe assurdo che i vari costruttori non rilascino i drivers anche per il lin) perchè si tratterebbe di un attimo per "fabbricarli".
Qui la questione e` diversa. A parte le considerazioni sulla licenza, comunque affatto secondarie, un driver e` un pezzo di software che deve integrarsi in un sistema esistente, non e` un'isola. Quindi, e` fortemente dipendente da dove si deve andare ad integrare. Sunto: la portabilita` e` utopia :)

Re: compilazione su linux e su windows

Inviato: giovedì 13 novembre 2008, 23:04
da squire
Grazie per la delucidazione Ikitt.
Tra l'altro proprio adesso andando su e giù tra forum e documentazione ho visto che esiste un linguaggio, il C#, che consente addirittura (non so se sempre o solo per alcune applicazioni) di compilare codici che poi risultano essere .exe e che possono essere eseguiti indifferentemente su win e su lin.
Forse in futuro esisteranno programmi in grado di girare sui vari sistemi a prescindere.
Per adesso ti saluto e grazie ancora.
ciao.

Re: compilazione su linux e su windows

Inviato: venerdì 14 novembre 2008, 14:24
da aeeadi
Quella del C# è una questione a parte, perchè i file .exe su linux rimangono non eseguibili (senza fare uso di software appositi come wine) una soluzione (seppur parziale e con le dovute limitazioni) del problema della portabilità viene da linguaggi interpretati (o semi interpretati) come il java dove a cambiare non è il programma ma l' interprete, questa è una buona soluzione ma ha alcuni difetti come per esempio la velocità di esecuzione!