[Unresolved] Rootcint on Windows + VS 10

Hello all,

I ended up pursuing a development path using VS 10 with root on Windows. Cygwin was just too slow for my taste (and unfortunately, this project cannot be in Linux).

The story to date:

I have successfully built smaller applications with ROOT in windows
I have successfully used rootcint to create a dictionary for a simple class
I have been able to link the aforementioned together to create a button dialog box

Here is where I’m stumped.

The project I’m working on is quite a bit larger, when I try and use rootcint I am hitting a wall due to the stdint.h file.

I’ve tried several points of attack with assistance of forums but Google searching has come up short.

So here is the case:

I have a simple class that has several functions, constructor, deconstructor. The header for this class also points to a few other dependencies. In one of these dependencies I am calling the evil stdint.h. Thus here are several types of outputs.

I have tried several permutations of Linkdef and rootcint calls to no avail as of yet (listed below).

LinkDef example 1:

#pragma link C++ class DAV_Saver;

LinkDef example 2:

#include "DAV_Saver.h"

#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class DAV_Saver;
#else if _WIN32
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class DAV_Saver;
#endif /* __CINT__ */

Rootcint examples (both run in normal cmd prompt as well as VS 2010 cmd prompt):

C:\root\bin\rootcint -f DAV_Saver.cpp -c -I"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include" DAV_Saver.h DAV_Saver_LinkDef.h

This does not return much information, no verbose output even with a -v flag. The resulting dictionary files are broken/null.

This returns an output stating that stdint.h cannot be opened in the two satellite headers that are using it.

This returns quite a bit of output as listed below:

Thanks in advance for any advice. Let me know what other info to provide as well.

Cheers,
John

Hi John,

Independently to your original question rather than:#pragma link C++ class DAV_Saver;we recommend to use the newer I/O system by using:#pragma link C++ class DAV_Saver+;.

Cheers,
Philippe.

Hi John,

Which version of ROOT are you using?

[quote]This returns an output stating that stdint.h cannot be opened in the two satellite headers that are using it.[/quote]Probably the simpliest is to update the header to contains:#ifndef __CINT__ #include <stdint.h> #endif

Cheers,
Philippe.