Re: [ROOT] Compiling root under Win 2000

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed May 16 2001 - 10:15:10 MEST


Hi Axel,

To generate the Windows version, I use the following configuration:

./configure win32 \
 --enable-star \
 --with-pythia-libdir=$HOME/pythia \
 --with-pythia6-libdir=$HOME/pythia6 \
 --with-cern-libdir=$HOME/cern \
 --with-shift-libdir=$HOME/shift/lib

Could you try with the source tar file for 3.01/02 at:

        ftp://root.cern.ch/root/root_v3.01.02.source.tar.gz
or take the latest version from CVS head.
The version 3.01 has a new mechanism to start Root (The TROOT constructor
is not required anymore). See the Root main program.

Can you run the 3.00/06 tutorials and test programs with the standard Root
binaries ?

Rene Brun



Axel Naumann wrote:
> 
> Hi,
> 
> I tried to compile root 3.00/06 under Win 2000, MSVC++ 6.0, cygwin. The
> compilation ("./configure win32;gmake") works fine (i.e. no errors), but
> Root doesn't work after the compilation. From what I can see the problem is
> connected to loading a dll and extracting the classes' dictionary entries
> defined in the dll.
> 
> When starting root it crashes in the following call stack
>   TApplication::TApplication(const char*, int*, char**, void*, int)
>   TRint::TRint(const char*, int*, char**, void*, int, unsigned char)
>   main(int, char**)
> 
> as CInt is unable to extract the class TGWin32 from libWin32. The call stack
> for loading TGWin32 looks like this:
>   ...
>   G__loadsystemfile(char*)
>   TSystem::Load(const char*, const char*, unsigned int)
>   TWinNTSystem::Load(const char*, const char*, unsigned int)
>   TROOT::LoadClass("TGWin32", "Win32")
>   TApplication::LoadGraphicsLibs()
> 
> Everything returns without error, but in TApplication::TApplication() the
> gROOT->ProcessLineFast("new TWin32") following the LoadGraphicsLibs() fails
> with
> Error: No symbol TGWin32 in current scope  FILE: LINE:0
> Error: type TGWin32 not defined FILE: LINE:0
> *** Interpreter error recovered ***.
> 
> So I tried to replace the libWin32.dll I compiled with the one in the root
> binary distribution. Now root starts up, but RootInteractive doesn't know
> any classes except for TGeometry (what a strange choice...).
> 
> What I don't understand is that a TClassTable::PrintTable() right before the
> ProcessLineFast("new TWin32") shows TGWin32 as known to the dictionary (and
> also a TClassTable::GetDict("TWin32") returns !=NULL). Are there two
> different dictionaries, one for the root TApplication and one for the
> interactive part of it, and for some reason CInt's dictionary doesn't get
> updated properly when loading a dll on the TApplication level?
> 
> I had a look at the dictionaries generated by rootcint during the
> compilation, they look okay, and as I said, the LoadClass does update
> "TApplication's" dictionary.
> 
> Best regards, Axel.
> 
> PS: How is the root binary distribution generated? With the exact same setup
> of VC6 and cygwin? Why did this error never show up then?



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:45 MET