Newsgroup: it.comp.lang.c
Titolo: Compilazione listati

Salve a tutti.
E' possibile, sotto windows, creare un file batch che compili un 
listato di un programma in linguaggio C in modo da renderlo un 
eseguibile? mi dicono che sotto linux c'è qualcosa tipo il 
comando "make"
grazie.
-- 
Lord Gas, the Waxen - Blasfemo di IFTMDG - Penguin's Enemy #1 
[ICQ: 57483751][the Waxen Pith: 
http://www.snipp.org/gas
]
... "Goddamn, there's always such a big temptation to be good"
... (Tom Waits - God's Away on Business)

 comando "make"
Perche' Windows l'ha bandito?
Se proprio non trovi nmake di VC++, scaricati le Unix utilities per
Windows
http://www.weihenstephan.de/~syring/win32/UnxUtils.html
HTH
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Perche' Windows l'ha bandito?
Il problema è che io questo file batch non lo so fare. Puoi 
spiegarmi (se non è eccessivamente lungo) come si fa?


 spiegarmi (se non è eccessivamente lungo) come si fa?
L'argomento è OT. Comunque un file batch è semplicemente un file di testo
che contiene dei comandi (in pratica programmi che puoi eseguire da linea di
comando) e salvato con estensione .bat; se non erro è poi possibile
utilizzare una sintassi minima per fare cicli e per riferirsi agli argomenti
passati da linea di comando quando richiami il file batch. Per i dettagli
posta su it.comp.programmare.win32
Comunque non ho capito bene quale sia il tuo problema; potresti
eventualmente essere più specifico? Da come l'hai messa sembra che tu debba
semplicemente compilare un file sotto Win.
Ciao

 semplicemente compilare un file sotto Win.
Ho dei listati, chiamiamoli "file.c"
Devo portarli al mio professore perché li esamini.
Potrei dirgli: "lei ha visual basic sul suo computer, se li 
compili e li esegua".
Ma sembra sia richiesto che io crei un file batch che li compili 
di suo.
Ora, io in vita mia non ho mai fatto un file batch, quello che 
dici tu l'ho capito, ma mi manca la capacita di scriverlo con una 
sintassi corretta, è come se tentassi di scrivere qualcosa in 
giapponese senza conoscere la lingua.
Io, effettivamente, devo solo compilare il listato, ma 
tecnicamente senza caricare il listato in Visual C++
Credo non saprei essere più chiaro. Che ne pensi?


 potesse essere non poi così "scandaloso" chiederlo qui.
Hint: il file di "progetto" che crei con il VC o qualunque altro compilatore
non basta?
Se vuio ricorrere a dei file batch o Windows Scripting Host e non sai come
programmarli rivolgiti invece sei palesemente OT.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."

 programmarli rivolgiti invece sei palesemente OT.
Allora:
1) rivolgiti dove? volevi scrivere it.comp.programmare.win32 ed 
eri troppo preso dal dirmi che sono OT per ricordartelo? ho 
chiesto anche a loro, non temere.
2) che senso ha dare un "hint"? ho già chiaramente spiegato di 
essere ignorante in materia. Se uno zoppo perde la stampella, non 
lo si aiuta indicandogli dov'è, gliela si porge.
3) OK, ho inquinato questo meraviglioso NG con un messaggio OT. 
Anatema. Non sarebbe molto più sensato non rispondermi o darmi 
una risposta che posso utilizzare senza dover postare altre 
richieste di chiarimento, visto che la presenza di una domanda 
del genere vi fa senza apparenti motivi andare così tanto su di 
giri? non è carino prendere a pesci in faccia la gente.



ANATEMA A TE E ALLA TUA DISCENDENZAAAH!!CHE TU SIA FUSTIGATOOO DAGLI ADEPTI
DI QUESTA SACRA SETTAAAAAH MA ANCHE OTTA(!?!)NON OSARE MAI PIU' INQUINARE
QUESTI SACRI LIDI CON LE TUE LIQUAMOSE RICHIESTE !!!!!!!!!(a meno che non
sacrifichi un cinghiale pasciuto alla divinita' K&R)(!?!)(scusate lo so,
sono andato definitivamente...)(SHLAP!SHLAP!)(rumore dei pesci in faccia...)

 sono andato definitivamente...)(SHLAP!SHLAP!)(rumore dei pesci in faccia...)
ROTFL! :D
Fermo, fermo, ché andiamo OT e ci prendono a sassate virtuali.


 Credo non saprei essere piů chiaro. Che ne pensi?
Forse ho capito quello che intendi: probabilmente quello che serve a te č
scrivere un makefile, non un file batch. Un makefile č semplicemente un file
con delle direttive che vengono interpretate da make (che č un programma
associato ad ogni compilatore): sostanzialmente le direttive indicano quali
sono i file che devono essere compilati per ottenere l'eseguibile finale. Il
problema č che ogni compilatore ha un make diverso, per cui non č una cosa
cosě immediata.
Che compilatore devi usare? Magari rispondimi in privato.
Ciao

 spiegarmi (se non è eccessivamente lungo) come si fa?
La struttura piu' semplice di un makefile da dare in pasto a make
e' del tipo
     TARGET ... : PREREQUISITES ...
             COMMAND
Questo significa che se hai un programma da realizzare a partire da
n sorgenti devi scrivere qualcosa tipo (estratta di pacca dal manuale
di make della gnu)
edit : main.o kbd.o command.o display.o \
            insert.o search.o files.o utils.o
             cc -o edit main.o kbd.o command.o display.o \
                        insert.o search.o files.o utils.o
 
     main.o : main.c defs.h
             cc -c main.c
     kbd.o : kbd.c defs.h command.h
             cc -c kbd.c
     command.o : command.c defs.h command.h
             cc -c command.c
     display.o : display.c defs.h buffer.h
             cc -c display.c
     insert.o : insert.c defs.h buffer.h
             cc -c insert.c
     search.o : search.c defs.h buffer.h
             cc -c search.c
     files.o : files.c defs.h buffer.h command.h
             cc -c files.c
     utils.o : utils.c defs.h
             cc -c utils.c
Cosa significa? Che per fare edit sono necessari i file
main.o
kbd.o
command.o
display.o
insert.o
search.o
files.o
utils.o
che vengono messi assieme usando il comando
cc -o edit ....
come si costruisce main.o?
a partire dai file
main.c
defs.h
con il comando
cc -c main.c
Si dice che main.o DIPENDE da main.c e defs.h
make e' un programma intelligente: si accorge queli sono i file
cambiati dall'ultima compilazione e ricompila solo i file le cui
dipendenze sono state modificate
In realta' basterebbe scrivere
main.o : main.c
  cc -c main.c
il programma globale verrebbe generato comunque. Con l'ultima direttiva
si avrebbero dei problemi. Infatti se viene mofificato defs.h, main.o
non viene rigenerato: edit puo' fare delle cazzate. 
Poi ci sono altre 25'000 direttive, opzioni & Compagnia bella.
Perche' non te l'ho detto prima? perche' _I_ make accettano tutti una
sintassi leggermente diversa uno dall'altro: qualcuno si incazza
addirittura se cc -c main.c non si trova sulla seconda riga con un
tab davanti (se non sbaglio proprio il make della gnu).
Pertanto o al tuo prof gli dai l'eseguibile _e_ i sorgenti, o ti studi
il make che usa il tuo prof, o ti studi il make che usi tu _E CHE
DOVRAI FORNIRE AL PROF._
Cosa c'entra questo con il "C"? Direi assolutamente niente. Perche'
non ti sei rivolto ad un NG piu' appropriato? Perche' in questo NG
un fesso che ti risponde lo trovi sempre e leggersi il manuale _DEL
PROPRIO COMPILATORE_ e' una inutile perdita di tempo.


 giri? non è carino prendere a pesci in faccia la gente.
"Usanet is a strange place". Per il resto ti ho gia' risposto sopra.


 PROPRIO COMPILATORE_ e' una inutile perdita di tempo.
Senti, ma io programmo anche in python e dovrei importare un modulo che ...
:P


 "Usanet is a strange place". Per il resto ti ho gia' risposto sopra.
Cosa sia UsEnet, vista tutta l'esperienza che ho avuto, se vuoi 
te lo racconto dove non è OT (visto che ci tenete tanto)


 PROPRIO COMPILATORE_ e' una inutile perdita di tempo.
E' vizio comune dei programmatori avere questo modo così 
indisponente di porsi? io ti ringrazio per la risposta tecnica 
che mi hai dato, davvero, però leggo queste ultime righe e mi 
cadono le braccia. Mi spiace.


 piace l'argomento che qualcuno tira fuori? lo trovi OT? ignoralo.
Mi dispiace, ma hai torto. I NG sono gruppi di discussione divisi per
argomento, esistono dei manifesti e delle netiquette da seguire, se qualcuno
posta un argomento OT il minimo che si può fare è avvisarlo dell'OT e
indirizzarlo verso un NG apposito, visto che ne esistono a bizzeffe. Sta poi
alla cortesia dell'interlocutore scusarsi e seguire i consigli.
Ciao

 alla cortesia dell'interlocutore scusarsi e seguire i consigli.
E' ovvio che il senso era quello di una discussione in topic, 
certo andrebbe considerata la buona fede di chi ha postato una 
richiesta. Se sono venuto a cercare qui un consiglio era perché 
pensavo che per fare una cosa del genere servissero indicazioni 
specifiche sul linguaggio C. Sarebbe stato lecito dirmi che il C 
non centrava niente, magari con un certo garbo, visto che non 
potevo saperlo. Cmq mi spiace sia finita in bagarre.


 carattere a venire fuori.
E diciamo che, finora, non hai colto nel segno. ma a me non 
andava di fare polemica, ero venuto in pace.


 andava di fare polemica, ero venuto in pace.
Augh! Meno male che non ti andava di fare polemica.
C:\>iao Angelo

 C:\>iao Angelo
Se uno si sente attaccato, come minimo cerca di difendersi.
Cmq, pace :)
Grazie ancora per la risposta.
