大道随心 2022-11-03 18:11 采纳率: 0%
浏览 33

python调用.so库文件中的.so库文件方法

问题描述:

执行环境使用python,底层驱动的库文件已提供了两个.so文件,分别是A.so和B.so,现在使用python直接调用A.so和B.so会出现很多问题,其中有大文件指针处理不了的问题,回调函数的问题,所以退而求其次;

使用c++重写一个demo.c文件来调用A.so和B.so,编译执行文件可以可以实现功能;
但最终想法是用python来实现它,所以又将demo.c文件交叉编译成libactive.so文件供python调用实现,此处如果不加载A.so和B.so时,可以正常执行。那么加载上A.so和B.so之后,会出现报错

运行结果及报错内容
Traceback (most recent call last):
  File "pydemo.py", line 13, in <module>
    so = cp.cdll.LoadLibrary('./libactive.so')
  File "/usr/lib/python3.7/ctypes/__init__.py", line 434, in LoadLibrary
    return self._dlltype(name)
  File "/usr/lib/python3.7/ctypes/__init__.py", line 356, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: ./libactive.so: undefined symbol:GetSdkVersion

我的解答思路和尝试过的方法

1.将demo.c编译成执行文件,可以实现A.so和B.so的对应功能
2.在网上查过没有我这种方法实现。

我想要达到的结果

编写一个python代码,调用libactive.so动态库,在libactive.so动态库中实现对应函数的执行,并能成功执行A.so和B.so的功能。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-11-03 20:48
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 11月3日

悬赏问题

  • ¥15 ssh登录页面的问题
  • ¥60 渗透一个指定银行app,拿到客户信息,需要什么级别
  • ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
  • ¥15 jetson nano
  • ¥15 :app:debugCompileClasspath'.
  • ¥15 windows c++内嵌qt出现数据转换问题。
  • ¥15 stm32 串口通讯过程中的问题
  • ¥20 公众号如何实现点击超链接后自动发送文字
  • ¥15 用php隐藏类名和增加类名
  • ¥15 算法设计与分析课程的提问