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