[Kde-nonlinux] Re: Compilation of arts on HPUX - namespace problems?

Ravikiran Rajagopal kde-nonlinux@kde.org
Thu, 11 Apr 2002 16:49:29 -0400


Hi,
  In that case, how do I disable testing for aRts in configure? I presume just 
deleting the checks from the configure script will not work, and I did not 
see a --without-arts option.
  Also, does the whole problem exist because the class is defined in the 
header, as opposed to just being declared? If so, I can move the function 
definitions to a different file, and sneak around the compiler.

Ravi

--- Harri Porten says:
> 4. On compiling mcop/common.h, the following error (and similar ones  
wherever 
> ObjectReference is used) kill the compilation:
> Error 359: "common.h", line 84 # The expression on the left side of the '->'
>     (arrow member access operator) must be a pointer to completed class 
object
>     type; the type of the left side is 'Arts::ObjectReference *' and 'class
>     ObjectReference' has not been defined yet.
>                     ObjectReference reference(buffer);
>                                     ^^^^^^^^^
> Error 283: "common.h", line 84 # Illegal operand type in call expression.
>                     ObjectReference reference(buffer);
>                                     ^^^^^^^^^
> According to my understanding, a class needs to be declared (not defined) 
> before it is referenced elsewhere. So the error message does not seem to 
make 
> sense to me.

My interpretation is different: as an object of type ObjectReference is
instanciated the compiler has to see the full definition. As
ObjectReference is only defined in a header that includes common.h I think
the compiler is right and the problem would be non-trivial to fix. Stefan
?

The simples workaround is just to remove those lines and live without aRts
for now.