--- In [email protected], "Shanthi Shetty" <[EMAIL PROTECTED]>
wrote:
>
> Hi All,
> 
> In one of my applications while running the makefile
> it gives error saying,
> 
>  *Undefined                       first referenced*
> * symbol                             in file*
> *__RT_CLASS::__vtbl              IndicateDB.o*
> *[Hint: try checking whether the first non-inlined, non-pure virtual
> function of class __RT_CLASS is defined]
> * *
> ld: fatal: Symbol referencing errors. No output written to
> IndicateComm*
> 
> **** Error code 1*
> *make: Fatal error: Command failed for target `IndicateComm'*
> 
> 
> What is _RT_CLASS::vtbl here( I assume it must be
> runtime class::vtable).
> The application is in C but there may be some dependency
> related C++. Its being executed in Solaris.

Shanthi,

this sounds as if you were trying to link one or more object files
generated with a different C++ compiler than the one you are using by
now. Or at least a different version.
For example, from Forte 4.0 to Forte 4.2 Sun has changed the name
mangling scheme for C++ method names; this means that you cannot link
C++ code compiled with Forte 4.0 with C++ code compiled with 4.2.
The same applies if you try to link gcc-compiled C++ code with
Forte-compiled code; gcc and Forte use different name mangling schemes
as well.

How to remedy?
Locate the C++ code that you are linking, and either recompile it
yourself with your current compiler, or have it recompiled by the
original vendor with your current compiler.
There is no other way; until this very day I have never heard of any
linker which can link such codes from different compilers / compiler
versions.

Regards,
Nico

Reply via email to