EMF文件(.so)调试,符号找不到VTable错误
EMF file(.so) debugging, symbol not found VTable error
在Solaris中,我有一个exe文件,根据指导原则,我需要添加一个共享库(.so)来扩展功能。我已经创建了一个lthmyplugin.so文件,并按照描述进行了添加。现在utlity运行得很好,直到它调用了我的函数。调用我的函数后,它失败了。
问题:
- 有什么方法可以调试吗
- 当我运行命令特拉斯时,它会识别aa.so
此外,ldd-d lthmyplugin.so除了之外没有显示任何错误
symbol not found: __1cIMyPluginG__vtbl_ (./lthmyplugin.so)
symbol not found: __1cIThPluginG__vtbl_ (./lthmyplugin.so)
symbol not found: __1cOThLocalOptionsG__vtbl_ (./lthmyplugin.so)
symbol not found: __1cJThOptionsG__vtbl_ (./lthmyplugin.so)
这会导致程序失败吗?
fyi,我没有使用和任何虚拟函数,构造函数或析构函数
这意味着什么符号找不到:_1cIThPluginG_vtbl_?
谢谢,
您可以使用nm工具查看so文件公开的函数。您可以拨打:
nm -g lthmyplugin.so
查看它公开了哪些功能。
除此之外,鉴于您已经将其标记为C++,我将尝试问:您是否指定了C风格的调用约定?如果你不这样做,它会把名字弄乱,使它们变得丑陋、不可读,在99.9%的情况下,它们是不可读的。您可以通过添加__attribute__((cdecl))来告诉gcc不要破坏您的函数,如下所示:
int not_mangled(int some_arg) __attribute__((cdecl))
{
return some_arg * 3;
}
相关文章:
- VC++本机单元测试,找不到调试符号
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- CMake 生成的 MSVC 项目找不到符号,即使为其相关 dll 正确生成了 lib 文件也是如此
- LD:尝试编译项目时找不到架构x86_64符号
- 错误:当我从"WinDbg"打开可执行文件时,找不到符号文件。默认导出 ntdll 的符号.dll
- 体系结构x86_64的未定义符号:找不到原因
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- 编译 GCC-5.0 OS X 狮子 dyld:找不到符号:__ZNKSt11logic_error4whatEv
- 为什么找不到这些符号?
- C++ XCODE ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -
- Qt Creator项目打破:"找不到建筑x86_64符号"
- 在 Mac 上C++编译代码时处理“dyld:惰性符号绑定失败:找不到符号”错误
- 与 dlopen 的动态链接:找不到符号
- MacOS LD:找不到符号(x86_64)
- C++编译错误:ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v
- dyld:惰性符号绑定失败:找不到符号:_yylex
- MacOS - 编译 c++ OpenCv 返回体系结构x86_64找不到的符号
- ld:找不到体系结构x86_64 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- OSX CGGetActiveDisplayList -> ld:找不到体系结构x86_64的符号
- EMF文件(.so)调试,符号找不到VTable错误