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

Reply via email to