Reputation: 18171
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
Reputation: 1
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
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