从dlerror()

时间:2016-03-21 14:29:08

标签: c++ dll dlopen

我试图在Linux上使用Anjuta。

我创建了一个包含.a和.so库的项目,然后编译它。汇编成功了。

由于dlopen()只能在安装时才加载.so库,我运行" make install"。安装成功了。

然后我尝试在Anjuta中运行程序。但是我收到一个错误,其中一个库无法找到。该消息来自dlerror()调用。

只是为了确保我做到了" ls -la" on" / usr / local / lib"图书馆就在那里。但是我怀疑是否存在对缺少的其他.so库的依赖。

所以我的问题是:

  1. 我的怀疑是否正确?
  2. 如果是 - 提供更有意义的信息会更合适吗? (这实际上是一个修辞问题)
  3. 如果1是正确的,有没有办法找到我缺少的库依赖?
  4. 提前谢谢。

1 个答案:

答案 0 :(得分:0)

  

我的怀疑是否正确?

可能。

  

如果是 - 提供更有意义的信息会更合适吗? (这实际上是一个修辞问题)

不,给你任何你没有要求的消息是不合适的。通过调用dlerror来获取此类消息是您的作业。

  

如果1是正确的,有没有办法找到我缺少的库依赖?

是:检查dlerror失败时调用dlopen的结果。

在Linux上,在环境中设置LD_DEBUG=libs也可能提供线索。