Error: link requested for unknown class FrameL G__auto1776LinkDef.h:7:
Warning: Error occurred during reading source files
Warning: Error occurred during dictionary source generation
!!!Removing G_frameL.cc G_frameL.h !!!
Error: rootcint: error loading headers…
which is because I don’t define a class “FrameL” (the name of the header file) inside the header file. If I change the filename to be xxxx.h where xxxx is the name of an existing class inside the header, everything works.
Is this expected ? My header is a set of C functions/structs…
[quote]Is this expected ? My header is a set of C functions/structs… [/quote]Yes it is. If the last argument is not a file whose name end (with some flexibility on the ‘casing’) with LinkDef.h then a trivial linkdef file is probived for you; This linkdef provided for you essentially contains#pragma link C++ class filenameOne;
#pragma link C++ class filenameTwo;
So you need to provide a linkdef file which list the class and function for which you want the dictionary to be generated. If you already have #pragma embedded in your header files, the linkdef.h can be empty.
[quote]If the last argument is not a file whose name end (with some flexibility on the ‘casing’) with LinkDef.h then a trivial linkdef file is probived for you; This linkdef provided for you essentially contains#pragma link C++ class filenameOne;
#pragma link C++ class filenameTwo;
[/quote]
Does this mean that the dictionary will NOT be generated for all the other classes present in the header ? I never noticed this, after so many years of ROOT-ing…
[quote]Does this mean that the dictionary will NOT be generated for all the other classes present in the header ?[/quote]Yes, that is ‘unexpected’ but correct. We have a feature request to change this default to generating (using #pragma defined_in) the dictionary for all the declared symbol in the header file.