Newsgroup: it.comp.lang.c++
Titolo: AIUTO TESI !!! ...Cosa significa ?

Info :Linking D:\La_mia_tesi\C-Simulatore\newmain.exe
Error:Error: Unresolved external '_log_file' referenced from module
newmain.cpp
Ho usato ua espressione del tipo extern FILE *log_file;
 sul file dove č contenuta la funzione main() [il file si chiama newmain],
ed in tutti i rimanenti files su cui ho distribuito il sorgente ho inserito
una riga extern FILE * log_file;
Cosa c'č che non va ?
Vi prego HO IMMEDIATO BISOGNO DI AIUTO.
 ANCHE SE ULTIMAMENTE STO INTASANDO IL N.G. DI MIEI MESSAGGI, NE HO BISOGNO,
PERDONATEMI....

Vi prego HO IMMEDIATO BISOGNO DI AIUTO.
Hai definito la variabile da qualche parte?
extern T var;
non e` una definizione, ma solo una dichiarazione,
da qualche parte devi esplicitamente definire la
variabile con una normale
T var;
Paolo
--------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
--------------------------------------------------

Ho provato a farlo, ma il problema è immutato.
Aggiungo un po' di codice... non sarà che forse sbaglio l'ordine in cui
chiamo la variabile log_file?SONO DISPERATO (AI EM DISPERATED)!!!!! CHE DEVO
FARE !!!!!
#include <stdio.h>
#include <stdlib.h>
#include "registra.cpp"
#include "global.h"
#include "utility.cpp"
/..../
// cosi inizia il file in cui si trova la funzione main()....
In registra.cpp faccio la definizione della variabile all'interno di una
funzione in questo modo:
#include <stdio.h>
void registra(void)
{
 FILE *log_file; // aggiunta da me per avere un log della simulazione;
 log_file=fopen("log.dat","w+");
 if(log_file==NULL)
 {fprintf(stderr,"ERRORE AD APRIRE IL FILE LOG.DAT");
  exit(1);
 }
}
// Nel file in cui c'è main () faccio una cosa di questo tipo, chiaramente
dopo le direttive di #include ....
void main()
{
/.../
extern FILE *log_file;
/..../           // resto del codice.
In tutti i file in cui uso log_file, TRANNE IN registra.cpp, scrivo sempre
extern FILE *log_file...
E ALLORA ????

 E ALLORA ????
E allora manca la definizione di una variabile di questo nome
con il linkage richiesto: ora hai solo dichiarazioni di essa,
senza definizioni.  Quella che definisci entro la funzione
registra e` omonima, ma non e` lei, appunto perche` interna a
un blocco, quindi priva del linkage richiesto.
Quindi i messaggi di errore dovrebbero essere cambiati, poiche`
l'errore e` diverso da prima.
Alex

Io ti ringrazio calorosamente, ma questo č lo stile del simulatore che mi
hanno passato per continuare io a svilupparlo come tesi... QUINDI  DOVRO'
BUTTARE TUTTO GIU' E RIFARLO ??? (DIMMI NO, TI PREGO !!!)

 BUTTARE TUTTO GIU' E RIFARLO ??? (DIMMI NO, TI PREGO !!!)
E` sicuramente possibile trasformare codice errato in codice
funzionante invece che rifarlo da capo, bisogna vedere se
_conviene_: puo` essere piu` lavoro correggere che rifare.
Comunque occorre una buona competenza di C++.  E` il piu`
complesso e difficile linguaggio in ampio uso, dopo tutto.
Alex

Adesso funziona !
Grazie per la dritta!!! Ho spostato la definizione vera e propria il
global.h, cioč li ho messo FILE *log_file,
nella funzione void registra(void) ho piazzato un extern FILE * log_file