python使用ctypes调用第三方库时出现undefined symbol错误详解

 更新时间:2023年02月20日 09:28:07   作者:liguiyuan112  
python中时间的库有time和datetime,pandas也有提供相应的时间处理函数,下面这篇文章主要给大家介绍了关于python使用ctypes调用第三方库时出现undefined symbol错误的相关资料,需要的朋友可以参考下

今天在用python 调用c++库文件时出现了一个错误,这里主要记录一下解决问题的思路。

1.出现错误

在使用python 中使用中调用第三方so库时

import ctypes
cpp = ctypes.CDLL('./detector.so')

出现如下错误:

Traceback (most recent call last):
File “detection.py”, line 143, in
face_detection(image_path)
File “detection.py”, line 52, in face_detection
cpp = ctypes.CDLL(’./detector.so’)
File “/usr/lib/python3.8/ctypes/init.py”, line 373, in init
self._handle = _dlopen(self._name, mode)
OSError: ./detector.so: undefined symbol: __powf_finite

这是由于未定义__powf_finite引起的。

2.分析步骤

(1)使用file命令检查so库的架构,看是否平台一致

file detector.so

输出:

detector.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=8ac2d2c5490394447e21cf383f1428d8ad70be7a, with debug_info, not stripped

发现平台是没有问题的。

(2)使用 ldd -r xxx.so 查看so库链接状态和错误信息

ldd -r detector.so

输出如下:

确实存在 undefined symbol: __powf_finite (./detector.so) 等问题,

(3)使用c++filt 定位错误位置

使用以下命令来查找在c++代码中的位置

c++filt __powf_finite

最后面发现是我c++代码的问题,我在c++代码中又引用了第三方库.a文件,是.a文件的问题,这个文件是以前的老代码生成的,自己重新编译源码生成新的 .a文件就可以解决了。

总结

到此这篇关于python使用ctypes调用第三方库时出现undefined symbol错误的文章就介绍到这了,更多相关python ctypes调用undefined symbol内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现感知器算法详解

    python实现感知器算法详解

    这篇文章主要为大家详细介绍了python实现感知器算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • Python中if有多个条件处理方法

    Python中if有多个条件处理方法

    在本篇文章里小编给大家整理的是一篇关于Python中if有多个条件处理方法,需要的朋友们可以学习参考下。
    2020-02-02
  • python数据分析matplotlib的基础绘图使用

    python数据分析matplotlib的基础绘图使用

    这篇文章主要为大家介绍了python数据分析matplotlib的基础绘图使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python爬虫实现热门电影信息采集

    Python爬虫实现热门电影信息采集

    这篇文章主要介绍了利用Python爬虫采集热门电影信息,文中示例代码很详细,具有一定的学习价值,感兴趣的小伙伴快来跟随小编一起学习吧
    2021-12-12
  • Python实现的文轩网爬虫完整示例

    Python实现的文轩网爬虫完整示例

    这篇文章主要介绍了Python实现的文轩网爬虫,结合完整实例形式分析了Python爬虫爬取文轩网图书信息的相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • Python发送http请求解析返回json的实例

    Python发送http请求解析返回json的实例

    下面小编就为大家分享一篇Python发送http请求解析返回json的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • 使用python检测手机QQ在线状态的脚本代码

    使用python检测手机QQ在线状态的脚本代码

    使用python检测手机QQ在线状态的脚本,有需要的朋友可以参考下
    2013-02-02
  • python 计算t分布的双侧置信区间

    python 计算t分布的双侧置信区间

    这篇文章主要介绍了python 计算t分布的双侧置信区间,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • python实现ip地址查询经纬度定位详解

    python实现ip地址查询经纬度定位详解

    这篇文章主要介绍了python实现ip地址查询经纬度定位详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python 如何去除字符串中指定字符

    python 如何去除字符串中指定字符

    python中的strip()可以去除头尾指定字符,只能删除头尾指定字符,想要去除中间字符,可以使用replace()函数,本文结合示例代码给大家介绍的非常详细,需要的朋友参考下吧
    2022-12-12

最新评论