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