[C++-sig] Re: newbie question: name mangling issue

David Abrahams dave at boost-consulting.com
Fri Jul 2 14:57:05 CEST 2004


Andrew Straw <strawman at astraw.com> writes:

> Here's a few lines from "strings /usr/local/lib/libcvaux.so | grep
> CvCalibFilter":
> _ZTV13CvCalibFilter
> _ZN13CvCalibFilterD1Ev
> _ZN13CvCalibFilterD0Ev
>
> So, it seems that an identifier very close to the unresolved
> "_ZTI13CvCalibFilter" is in the .so, but it is not quite exactly the
> same.

Running c++filt over your message descrambles those identifiers:

   vtable for CvCalibFilter
   CvCalibFilter::~CvCalibFilter()
   CvCalibFilter::~CvCalibFilter()

   So, it seems that an identifier very close to the unresolved
   "typeinfo for CvCalibFilter" is in the .so, but it is not quite
   exactly the same.

My guess is that either:

   1. You have turned off RTTI in your compiler options and need to
      turn it back on.

   2. You have left out the definition of one of CvCalibFilter's
      (probably virtual) member functions

Otherwise you almost certainly have found a compiler bug and there's
not much I can do to help you.

-- 
Dave Abrahams
Boost Consulting
http://www.boost-consulting.com





More information about the Cplusplus-sig mailing list