Re: ROOT globals on NT

From: Valeri Fine (Faine) (fine@bnl.gov)
Date: Wed Jan 19 2000 - 23:28:48 MET


> Hi!
> 
> I am curious what does the following warning means:
> 
> ---
> 
> in h
> 
> R__EXTERN TNeuralNetwork *gNeuralNetwork;
> 
> in cxx
> 
> TNeuralNetwork *gNeuralNetwork;
> 
> ---
> 
> TNeuralNetwork.cxx
> D:\RQuant\TNeuralNetwork.cxx(3) : warning C4273: 'gNeuralNetwork' :
> inconsistent dll linkage.  dllexport assumed.

  This is correct. You must see this. It says that global variable gNeuralNetwork is 
  defined as "external" with  the class header file

  But for TNeuralNetwork.cxx it is not true. For this particluar file this variable is NOT external.
  It is defined by your *.cxx" file and this definition does contradict the definition of the same variable
  given with the class header file.

  If your program is correct you should  meet only message like this. This means your global variable 
  is defined somewhere at once.

  You had NO such message this means you did not define your global variable at all and you should anticipate
 "undefined variable" message just you start your program leading to crash

  If you had more then one this means you did defined your global variable TWICE. It is a bug and the 
  program behavior is not predictable.

   Regards,
                        Valery



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:17 MET