Newsgroup: it.comp.os.linux.development
Titolo: Prima compilazione di prova...

Ciao
ho provato a compilare il mio primo prg in fortran su Linux con
g77 version 2.95.3 20010315 (release) (from FSF-g77 version 0.5.25 20010315
(release))
Questo è il comando che ho dato:
g77 -ff77 -fcase-upper -mpentium -mhard-float prova.for
Messaggio di errore:
/usr/lib/gcc-lib/i386-slackware-linux/2.95.3/libg2c.a(open.o): In function
`f_open':
open.o(.text+0x494): the use of `tempnam' is dangerous, better use `mkstemp'
1)
Che vuol dire?
Dove trovo documentazione su questo tipo di errori?
2)
Quando compilavo su altri S.O. i vari compilatori, in un modo od in un altro
mi davano la possibilità di ottenere un listato (output di compilazione) in
formato testo con tutte le righe numerate e gli eventuali errori riportati
riga per riga.
Sapete se c'è questa possibilità?
Grazie
giulio

 Sapete se c'è questa possibilità?
Quella che usavi tu non era una feature del compilatore, a cui basta
mostrarti
dove hai sbagliato e cosa hai sbagliato con una linea come quella sopra,
e non
mostrandoti il listato del programma.
Quella che usavi era una feature dell'ambiente di programmazione. Sotto
Linux,
penso che ci siano vari ambienti di programmazione Fortran. Nel caso, li
trovi
su 
http://freshmeat.net
. Altrimenti, immagino che Emacs faccia *anche*
questo.
Bye,
 Emmanuele.
-- 
Emmanuele Bassi.

 Emmanuele Bassi.
Grazie
Giulio

Giulio ha scritto : 

L'opzione -F non esiste (almeno nella mia versione di make), esiste 
invece -f, che si aspetta che tu gli specifichi il nome del makefile.
In pratica make è un tool per la compilazione automatica indispensabile
quando il tuo progetto inizia ad ingrandirsi e quindi ad esempio si 
compone di piu' moduli esterni e non di un unico .cpp. Nel makefile
si specificano varie cose, come il compilatore da usare, le varie flags
da settare nonchè le leggi con le quali costruire gli eseguibili. In 
pratica tu puoi settare una serie di dipendenze del tipo
main.e : main.o lib.o
questa ti dice che per creare main.e è necessario creare i due file
oggetto main.o e lib.o (lib.o potrebbe ad esempio contenere il codice 
di alcune funzioni usate in main.cpp). Dovrai poi specificare le 
dipendenze per creare i file .o in modo analogo, ed infine dovrai
specificare il modo in cui fare le compilazioni (flag parametri e così 
via). A questo punto quando lanci make esso va a cercare le dipendenze
ed effettua solo le compilazioni strettamente necessarie. Tornando all'
esempio di sopra, supponi di aver compilato tutto e di aver il tuo bel
main.e, ad un certo punto decidi di cambiare l'implementazione di una
funzione in lib.cpp, facendo a mano dovresti ricompilare lib.cpp e 
linkare nuovamente lib.o e main.o per ricostruire main.e. Lanciando make
lui invece si accorgerà che lib.cpp è cambiato e quindi lo ricompila,
poi vista la dipendenza settata sopra vede che è necessario ricostruire
anche main.e e quindi provvede anche a questo, tutto in automatico.
Beh direi che può bastare, per maggiori informazioni vedi "man make"
ma sopratutto "info make".
-- 
  _  _ >>Now on Linux<<  _     || ICQ number.................Non lo uso
 | \| |___ _____ ___ ___|_|___ || Home-Page ................Non ce l'ho
 | .` | -_|     | -_|_ -| |_ -||| E-Mail................Non l'avrai mai
 |_|\_|___|_|_|_|___|___|_|___||| Un Nemesis che ha pochi e-contatti ;)