> cat foo.idl
#ifndef FOO_IDL
#define FOO_IDL
module ack
{
interface foo
{
typedef short value;
};
};
#endif
> cat bar.idl
#ifndef BAR_IDL
#define BAR_IDL
#include "foo.idl"
module ack
{
interface bar: foo
{
boolean op (in foo::value v);
};
};
#endif
> orbit-idl -I. foo.idl bar.idl
> cat test01.c
#include "foo.h"
#include "bar.h"
int main (void)
{
return (0);
}
> gcc -g -Wall `orbit-config --cflags client` -c test01.c
In file included from test01.c:3:
bar.h:62: conflicting types for `POA_ack_foo__epv'
foo.h:48: previous declaration of `POA_ack_foo__epv'
bar.h:68: conflicting types for `POA_ack_foo__vepv'
foo.h:54: previous declaration of `POA_ack_foo__vepv'
bar.h:74: conflicting types for `POA_ack_foo'
foo.h:60: previous declaration of `POA_ack_foo'
First, a couple of easy name resolution questions. Should the parent interface of bar be specified explicitly as ack::foo? I noticed that Bonobo does it this way. Can the type for the parameter of op be specified simply as value rather than foo::value?
Finally, the real question. How do I get rid of the compiler errors?
Thanks,
Eric.