On Fri, Oct 31, 2014 at 9:03 AM, Lorenzo Zanon <[email protected]> wrote: > Hello, > > Referring to the RB examples, it would be great if I could use a > separate source file in addition to the header rb_classes.h, but I'm > getting a compile error, probably due to wrong local inclusions... > > That's how I do my inclusions: > > main file: reduced_basis_ex4.C > #include "eim_classes.h" > #include "rb_classes.h" > #include "assembly.h" > ... > > header EIM: eim_classes.h > #include "assembly.h" > ... > > header RB: rb_classes.h > #include "eim_classes.h" (some RB classes need the EIM classes) > #include "assembly.h" > ... > > new source file: rb_classes.C > #include "eim_classes.h" > #include "rb_classes.h" > ... > > assembly.h > > The error I'm getting has the form: > > reduced_basis_ex4.x86_64-unknown-linux-gnu.opt.o: In function > `SimpleEIMEvaluation::initialize_eim_theta_objects()': > reduced_basis_ex4.C:(.text+0xfe50): multiple definition of > `SimpleEIMEvaluation::initialize_eim_theta_objects()' > rb_classes.x86_64-unknown-linux-gnu.opt.o:rb_classes.C:(.text+0xf790): > first defined here > > for all the SimpleEIM and SimpleRB functions. How could I fix that?
Make sure all the header files you're using (especially ones you've created) have include guards at the top. -- John ------------------------------------------------------------------------------ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
