vico
vico

Reputation: 18171

Undefined symbol during dlopen

Trying to load shared lib:

handle = dlopen( "libaaa.so.2.5", RTLD_NOW );
  if ( !handle )
    {
      printf("Failed to open aaa lib: %s\n", dlerror());
      return 1;
    }

When I run ./myBinary got error:

undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE

What this symbol means? How to fix this problem?

Upvotes: 0

Views: 4199

Answers (2)

Run (on your Linux or Unix system, using GCC or Clang as their C++ compiler) the c++filt _ZTVN10__cxxabiv117__class_type_infoE command to decode the name mangling. It tells

 vtable for __cxxabiv1::__class_type_info

So you should link your executable binary (or perhaps your libaaa.so.2.5 shared library) with the standard C++ library (as suggested by Maxim Egorushkin's answer).

Upvotes: 0

Maxim Egorushkin
Maxim Egorushkin

Reputation: 136256

The executable probably requires -lstdc++. If linked with gcc, link with g++ instead, it links in the C++ standard library for you.

Upvotes: 4

Related Questions