我正在使用以下代码 -
pxSFunc->handle = dlopen(psFilePath, RTLD_LAZY);
if (!pxSFunc->handle) {
printf("%s Ignored loading the lib: %s\n", dlerror(), psFilePath);
Run Code Online (Sandbox Code Playgroud)
psFilePath 指向有效路径(可读和可访问)的位置。
运行此部分后,我收到以下错误:
File not found Ignored loading the lib: /usr/lib/libnetwork.so
Run Code Online (Sandbox Code Playgroud)
我想知道应该使用什么调试工具来调试这个问题?
我将所有相关路径添加到 LD_LIBRARY_PATH,并且在这个库上运行 'ldd' 没有显示任何问题。也许有人对这个问题与什么有关有什么想法?
谢谢大家!
您可以尝试查看来自链接器的所有调试信息,以查看它究竟在哪里失败:
$ export LD_DEBUG=all
Run Code Online (Sandbox Code Playgroud)
并运行你的程序。还有LD_DEBUG_OUTPUT,如果你想重定向调试信息保存到文件。您可以从手册中看到更多信息。
您还可以使用ldd查看依赖项列表:
$ ldd /usr/lib/libnetwork.so
Run Code Online (Sandbox Code Playgroud)
输出将很容易理解,它会告诉您是否缺少任何依赖项。