如果lt_dlopen失败,如何获取更多信息
How to get more info if lt_dlopen fails?
我正在调用lt_dlopen
,并得到一个未找到的通用文件错误(已翻译的errno文本)。我如何才能获得更多关于实际失败的信息,因为文件肯定在那里。
这是一个加载C++库的C++程序。在同一个程序中,我使用相同的命令打开其他库而不会出现问题,因此我担心它可能是这个库特有的。我使用了ldd
,并且满足了库的所有依赖项。
我偶然发现了一种有效的东西:
export LD_DEBUG=all
然后继续筛选输出的极端质量。在这种情况下,我发现了一个"查找错误",其中一个符号无法解决。我不知道为什么,但这可能与这个问题无关。
用$CFLAGS中的"-DLT_DEBUG_LOADERS"重新编译libtool。调整LD_LIBRARY_PATH,以便您的程序找到此调试libltdl.so,而不是系统的。ltdl的调试版本将为每个加载程序打开目标的尝试打印显式错误,其详细程度远低于LD_debug=all。
来源http://www.delorie.com/gnu/docs/libtool/libtool_46.html:
Function: lt_dlhandle lt_dlopen (const char *filename)
[…]如果lt_dlopen由于任何原因失败,它将返回NULL。
Function: const char * lt_dlerror (void)
返回一个人类可读的字符串,描述最近的错误发生在libltdl的任何函数中。如果没有错误,则返回NULL自初始化或上次调用后发生。
相关文章:
- Visual Studio 2017 C++,不能使用 typeid() 获取信息对象,缺少指针?;
- 如何从 LIBPCAP 获取信息?
- 如何使用 windbg "dt"命令从命名空间污染的内存转储中获取信息
- 从一个案例获取信息到另一个案例
- 我想从文本文件中获取信息并将该信息分配给类对象
- 从Blender获取信息C++(DeviceContext,RenderContext,Scene-Informatio
- 从文本文件c++中获取信息并进行匹配
- CORBA客户端/服务器应用程序,从服务器获取信息(空值)
- 如何解析html并获取信息
- C++套接字 WEB 从特权站点获取信息
- 如何从main到void获取信息
- 从内存进程中获取信息
- 在不遍历文件内容的情况下从文件中获取信息
- 如何在连接到网站时获取信息
- 如何从外部资源中获取信息
- 从EXCEPTION_RECORD中获取信息
- 是否有一种方法可以从VS环境之外的MS单元测试框架中获取信息
- 从标准输出(c++)中获取信息
- 你能像如何从Jar文件中获取信息一样从c++ Lib文件中获取信息吗?
- 如何在c++中从文件中随机获取信息