【问题标题】:CDLL can not find find shared objectCDLL 找不到共享对象
【发布时间】:2020-10-08 13:08:03
【问题描述】:

我在 /usr/lib 中有共享对象文件 libalgo.sols -al /usr/lib给了

-rwxr-xr-x  1 root root  14264 Jul  6 06:57 libalgo.so
-rwxr-xr-x  1 root root 403496 Oct  8 12:07 libnlopt.so.0

我必须在 python 中导入这个共享库

from ctypes import *
    try:
        lib = '/usr/lib/libalgo.so'
        algo_lib = CDLL(lib)
        print('algo_lib loaded')
    except Exception as e:
        print(e)

运行此代码时,我收到一条错误消息,提示无法读取共享对象。没有这样的文件...

我还在 LD_LIBRARY_PATH 中添加了 /usr/lib。此错误仅发生在远程我不是在我的本地机器中。

【问题讨论】:

    标签: python-3.x shared-libraries


    【解决方案1】:

    TL;DR libalgo.so 是为 arm 编译的。

    我们正在为 x86 机器上的 arm 系统进行开发。其中一个 deb 包以错误的共享对象结束。 python给出的错误消息也充其量是误导性的。该消息没有显示像 invalid object file 之类的东西,而是让我相信 python 找不到该文件。我不知道为什么会给出这样的错误信息,如果能提供更多信息,我们将不胜感激。

    【讨论】:

      猜你喜欢
      • 2016-07-19
      • 1970-01-01
      • 2019-03-05
      • 1970-01-01
      • 1970-01-01
      • 2015-08-04
      • 2021-07-01
      • 2018-08-16
      • 1970-01-01
      相关资源
      最近更新 更多