ROOTCINT problem on Windows

From: Lynch, Michael (STFC,RAL,PPD) <michael.lynch_at_stfc.ac.uk>
Date: Mon, 7 Sep 2009 16:29:38 +0100


Hello,

I'm working on a project (a DLL/shared object) that tries to create TTrees with branches of type std::vector<float/int/double/bool>, std::vector<TVector3> and std::vector<TLorentzVector>.

I'm running ROOT v5.24/00 on Windows XP SP3 and Microsoft C++ compiler v15.00.30729.01 (from MS Visual C++ 2008 Express). This project works fine on Scientific Linux 4.4 and ROOT v5.24, but I'd like to be able to target both platforms.

I have to run

rootcint -f MyDict.cxx -c -p RootSession.cpp RootSessionField.cpp LinkDef.h

so that ROOT can write the trees with vector<TVector3> etc (I've attached my LinkDef.h, in case that's useful). The resulting files are then compiled into my main shared object, which works fine on Linux. However, on Windows, with exactly the same call, rootcint crashes. I definitely have full read/write permissions for this folder, which seems to have been an issue that's tripped other people up.

The culprit seems to be the -c argument. Without it, rootcint does not crash, but still does not work and prints a warning instead:

If I run rootcint -f MyDict.cxx RootSession.cpp RootSessionField.cpp LinkDef.h, I get the warning

Limitation: Reference member not supported. Please use pointer D:/root/include\T
GenericClassInfo.h(36)

Whereas if I run rootcint -f MyDict.cxx -p RootSession.cpp RootSessionField.cpp LinkDef.h, I get

2254010_cint.cxx
D:/root/cint/cint/include\limits.h(8) : fatal error C1017: invalid integer const
ant expression
Error: external preprocessing failed. (0)

Either way, it seems the -c argument is necessary (and indeed, my code works perfectly on Linux).

Is this a known issue that I've missed in the forums? Can anyone offer an explanation/solution?

Regards,

Mike

Received on Mon Sep 07 2009 - 17:33:27 CEST

This archive was generated by hypermail 2.2.0 : Mon Sep 07 2009 - 17:50:01 CEST