Simple ACLiC Problem in Windows

I am trying to use aclic in Windows using MSVS 10.0 to compile a very simple library and I am having a problem that should be trivial. The two files I am trying to compile are attached. The output is below:

$ root -b -q Loader.C++


  •                                     *
    
  •    W E L C O M E  to  R O O T       *
    
  •                                     *
    
  • Version 5.28/00 14 December 2010 *
  •                                     *
    
  • You are welcome to visit our Web site *
  •      [root.cern.ch](http://root.cern.ch)            *
    
  •                                     *
    

ROOT 5.28/00 (trunk@37585, Dec 14 2010, 15:20:27 on win32)

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0]
Processing Loader.C++…
Info in TWinNTSystem::ACLiC: creating shared library C:\Users\Dan\My Code\SoftMuRates\Loader_C.dll
22532269_cint.cxx
Error: class,struct,union or type C:\Users\Dan\MyCode\SoftMuRates\Loader.h not defined C:\Users\Dan\My Code\SoftMuRates\Loader_C_ACLiC_linkdef.h(8)
Warning: link requested for unknown srcfile C:\Users\Dan\MyCode\SoftMuRates\Loader.h C:\Users\Dan\My Code\SoftMuRates\Loader_C_ACLiC_linkdef.h(8)
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing C:\Users\Dan\My Code\SoftMuRates\Loader_C_ACLiC_dict.cxx C:\Users\Dan\My Code\SoftMuRates\Loader_C_ACLiC_dict.h !!!
Error: C:\root\bin\rootcint: error loading headers…
Error in : Dictionary generation failed!
Info in : Invoking compiler to check macro’s validity
Error: Function Loader() is not defined in current scope (0)
*** Interpreter error recovered ***

The file is sitting right there and this has worked in Linux before, so I’m not sure what I’m doing wrong. Any help would be appreciated.

Loader.C (244 Bytes)
Loader.h (213 Bytes)

Thanks,
Dan

Hi Dan,

Try to do it in a directory (path) without blanks (white spaces). E.g. C:\Users\Dan\MyCode\SoftMuRates instead of C:\Users\Dan\My Code\SoftMuRates.

Cheers, Bertrand.

That seems to fix the problem, although it does still produce an error message.

Processing Loader.C++…
Info in TWinNTSystem::ACLiC: creating shared library C:\Users\Dan\My_Code\Soft
MuRates\Loader_C.dll
26584313_cint.cxx
Loader_C_ACLiC_dict.cxx
Creating library C:\Users\Dan\My_Code\SoftMuRates\Loader_C.lib and object C:
Users\Dan\My_Code\SoftMuRates\Loader_C.exp
Error: Function Loader() is not defined in current scope (0)
*** Interpreter error recovered ***

The dll is there, so I’m not very bothered. Thanks for the advice.

Dan

Well, to solve this, you should either use this syntax:

or define an empty Loader function in Loader.C:

Cheers, Bertrand.