尝试加载共享库:
handle = dlopen( "libaaa.so.2.5", RTLD_NOW );
if ( !handle )
{
printf("Failed to open aaa lib: %s\n", dlerror());
return 1;
}
当我跑./myBinary出错:
undefined symbol: _ZTVN10__cxxabiv117__class_type_infoE
这个符号是什么意思?如何解决这个问题?
答案 0 :(得分:1)
可执行文件可能需要-lstdc++
。如果与gcc
相关联,请与g++
链接,它会链接到C ++标准库中。
答案 1 :(得分:0)
运行(在您的Linux或Unix系统上,使用GCC或Clang作为其C ++编译器)c++filt _ZTVN10__cxxabiv117__class_type_infoE
命令来解码CBCentralManagerShowPowerAlertKey
。它告诉
vtable for __cxxabiv1::__class_type_info
因此,您应该将可执行二进制文件(或者您的libaaa.so.2.5
共享库)与标准C ++库链接(如name mangling所示)。