Newsgroup: it.comp.lang.c
Titolo: Compilare per Dos e Windows

Ciau a tutti,
ho scritto un programmino in C senza interfaccia grafica e lo compilo col
comando
gcc -o fname fsource.c -lgd -lpng -lz -ljpeg -lfreetype -lm
e sulla mia macchina (Suse Linux 9.0) gira senza problemi.
Come faccio a compilarlo in modo che funzioni su qualsiasi macchina con
linux (o almeno sulla maggior parte)?
E' possibile compilarlo anche per Dos e/o Windows direttamente usando gcc?
Se no, cosa dovrei usare?
Grazie in anticipo a tutti!
CIAU!!!

 E' possibile compilarlo anche per Dos e/o Windows direttamente usando gcc?
Esiste MingW che e' il porting su Windows di gcc. In questo caso
(ammesso che tu abbia usato solo C standard e che esistano le librerie
 che ti servono) non dovresti avere problemi.
Per il dos la cosa e' piu' complessa, visto che e' un S.O. che non
ha idea di cosa sia la memoria virtuale.
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha idea di cosa sia la memoria virtuale.
Non capisco cosa serva parlare di memoria virtuale in questo contesto....
Per il dos, DJGPP produce eseguibili per dos, e non e' l'unico...
Il problema, come ben sottolineato da Angelo, e' che se hai usato solo C
standard allora potrai (con vari compilatori) compilarlo per qualsiasi
architettura e/o sistema operativo per cui esista un compilatore C....
nessun problema.... ma...
se invece hai usato librerie esterne, chiamate al sistema operativo etc...
allora la cosa non e' cosi' semplice!!!
Tommy

 Per il dos, DJGPP produce eseguibili per dos, e non e' l'unico...
.. e fino a quando si compila "Hello World", tutto fa brodo.
Premesso che non ho mai scritto un programma serio per dos, se non
erro ogni compilatore ti metteva a disposizione 4 modelli di memoria
tiny, small, normal, huge (o qualcosa del genere), per cercare di
aggirare in qualche modo i limiti dell'architettura segmentata di
memoria che si aveva a disposizione.
Sinceramente non so come si comporta sotto dos una chiamata del genere
 pP = malloc(128k)
e visto che il png, jpg & Co, fanno ipotizzare un programma di
manipolazione di formati grafici, ho paura che l'OP (se vuole andare
anche sotto dos) con la memoria segmentata ci si dovra' scontrare.


 pP = malloc(128k)
   Funziona, se ci sono 128k disponibili.
   Saro` vago, perche` non mi ricordo benissimo. :-)
   DJGPP utilizza un dos extender compatibile VCPI (go32.exe mi pare),
quindi gli eseguibili girano sotto DOS, ma anche in console/prompt-dos
di windows.
   Lo chiamano qualcosa come "flat memory model", tutti i registri di
segmento vengono impostati con inizio all'indirizzo virtuale 0 e
ampiezza 4GB, quindi tutti i puntatori sono a 32 bit e possono
indirizzare fino ai teorici 4GB (o forse 2GB).
   Non mi ricordo se ci sia gestione di memoria virtuale, ma credo di
no, sotto DOS, mentre si appoggia a quella di windows in console.
   Chiaramente, gli eseguibili prodotti da DJGPP funzionano soltanto
su 386 o superiori.
-- 
S.L.

 su 386 o superiori.
Mi sembra di sì, che potessi creare un file "di swap" con i tools per
configurare la macchina "client"... Ma non ci metterei la mano sul fuoco.
--- bye

 Se no, cosa dovrei usare?
  Ciņ che ti occorre č un crosscompilatore linux -> dos.
  In queste mie pagine mi sono annotato dove andare a pescare
  la documentazione per compilare Mingw all'uopo:
 
http://www.lulli.net/cgi-bin/oz.pl?sub::links::xxinformatica
  Inoltre io uso con successo djgpp come crosscompilatore.
  Sarebbe mia intenzione fare l'upload di quest'ultimo, direttamente 
  compilato e funzionante sulle mia pagine; tuttavia occupa
  14M, e la mia connessione, al momento non me lo permette :-(
  Anche per djgpp si trovano le istruzioni per costruire il
  crosscompilatore (se no, come facevo ?)
  Inoltre, se devi compilare linkando delle librerie, mi sembra
  ovvio che devi provvedere le stesse (sempre che siano disponibili)
  per piattaforma DOS...
  Ciao ciao,
  Paolo
-- 
<!--_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_
                      The Hacking Pages   
 
www.lulli.net
 
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-->

 usare?
  Dimenticavo:
  Io comunque suggerirei un bel followup su: 
 
  it.comp.os.linux.development
 
  credo che sia il posto più indicato per discuterne.
