python调用.so动态链接库,运行时报错 liblapack.so.3: undefined symbol: icamin_k
目录
- 1. 报错
- 2. 原因
- 3. 尝试
- 4. 解决
1. 报错
用python调用动态链接库,编译完全没有问题,顺利生成.so文件,但是运行python调用该库时,发生报错。
报错信息如下:
Traceback (most recent call last):File "py_send.py", line 14, in <module>sharelib = libLoad("./build/libpython2share.so")File "/home/aaeon/miniforge3/envs/safeguard/lib/python3.6/ctypes/__init__.py", line 426, in LoadLibraryreturn self._dlltype(name)File "/home/aaeon/miniforge3/envs/safeguard/lib/python3.6/ctypes/__init__.py", line 348, in __init__self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/aarch64-linux-gnu/liblapack.so.3: undefined symbol: icamin_k
通过阅读最后一行的报错信息OSError: /usr/lib/aarch64-linux-gnu/liblapack.so.3: undefined symbol: icamin_k,我们可以看到,是/usr/lib/aarch64-linux-gnu/liblapack.so.3
中出现了未定义符号icamin_k
。
2. 原因
上面我们得到信息,是/usr/lib/aarch64-linux-gnu/liblapack.so.3
中出现了未定义符号icamin_k
导致的报错。
可以想象,我的c++程序在编译时,可能调用了/usr/lib/aarch64-linux-gnu/liblapack.so.3
,并利用该动态链接库生成可执行文件,未定义符号icamin_k
就是此时被带进来的。
这里,可以通过命令stat /usr/lib/aarch64-linux-gnu/liblapack.so.3
看到,/usr/lib/aarch64-linux-gnu/liblapack.so.3
实际上是一个指向liblapack.so
的软连接。之所以报错,应该是该软连接指向了一个错误的liblapack.so
,而该错误动态链接库中,包含符号icamin_k
也就是说,我们需要找到不包含符号icamin_k
的动态链接库liblapack.so
。
3. 尝试
我们直接进入路径/usr/lib/aarch64-linux-gnu
下进行查找。
- 搜索该路径下所有名称上包含“liblapack.so”的软链接和文件,如下
sudo find ./ -type l,f -name "*liblapack.so*"
搜索结果为
./liblapack.so
./lapack/liblapack.so
./lapack/liblapack.so.3
./lapack/liblapack.so.3.7.1
./atlas/liblapack.so
./atlas/liblapack.so.3
./atlas/liblapack.so.3.10.3
./liblapack.so.3
./openblas/liblapack.so
./openblas/liblapack.so.3
可以看到,该路径下,文件夹./lapack/
,./atlas/
和./openblas/
中有该软连接。
- 搜索该路径下所有内容上包含
icamin_k
的文件,如下
sudo grep -rn "icamin_k"
搜索结果为
Binary file libopenblas_armv8p-r0.2.20.so matches
Binary file openblas/libblas.so.3 matches
Binary file openblas/liblapack.so.3 matches
Binary file libopenblas_armv8p-r0.2.20.a matches
可以看到,该路径下,文件夹./openblas/
中的软连接包含字符icamin_k
,所以我们要找的链接应该在./lapack/
和./atlas/
中。
也就是说,我们只需要将软链接/usr/lib/aarch64-linux-gnu/liblapack.so.3
更新,指向./lapack/
或者./atlas/
中的同名动态库就可以了。
4. 解决
参考博客《liblapack.so.3: undefined symbol: icamin_k错误及解决办法》
依次执行以下命令,
cd /usr/lib/aarch64-linux-gnu
sudo rm liblapack.so.3
sudo rm liblapack.so
sudo ln -s /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 liblapack.so.3
sudo ln -s /usr/lib/aarch64-linux-gnu/lapack/liblapack.so.3 liblapack.so
注意,这是jetson的机器!
python调用.so动态链接库,运行时报错 liblapack.so.3: undefined symbol: icamin_k相关推荐
- 关于STM32 Hal 库函数编写的程序 在编译时报错 :“Error: L6218E: Undefined symbol 函数名 (referred from xx.o)” 的解决办法
问题描述:在借鉴别人的程序时,直接把部分hal库的程序拿来用,在编译时出现下图所示的问题 1 . 尝试解决但是没有成功的办法: 1.1 头文件包含问题 一开始以为是没有包含头文件,将头文件包含后,再次 ...
- Python 多进程的进程池pool运行时报错:ValueError: Pool not running
本文仅供学习交流使用,如侵立删!demo下载见文末 Python 多进程的进程池pool运行时报错:ValueError: Pool not running def main(self, num):& ...
- Java 调用 Caffe_解决 free(): invalid pointer: 0x00000000019ff700 运行时报错(caffe)(libtool使用)...
编译成功,运行时报错: 在使用 pytorch or tensorflow or caffe 时,都可能存在这个问题: *** Error in `xxx': free(): invalid poin ...
- Android 接口的default 方法运行时报错AbstractMethodError
[问题描述:接口default方法AbstractMethodError] 记录一个Android项目中遇到的问题,我们通过exclude方式重写了一个依赖,改用本地的实现,其中一个接口的defaul ...
- Python: PyCharm中导入matplotlib时报错:“Backend Qt5Agg is interactive backend”的解决方案
Python: PyCharm中导入matplotlib时报错:"Backend Qt5Agg is interactive backend"的解决方案 在使用PyCharm时,在 ...
- adb shell 运行时报错“adb server version (26) doesn‘t match this client (39); killing...“的解决方案
adb shell 运行时报错"adb server version (26) doesn't match this client (39); killing..."的解决方案 参 ...
- 在 HBuilder X 创建Uni-app项目运行时报错
在 HBuilder X 创建Uni-app项目运行时报错 需解决的问题有两个,创建的项目就可以编译成功,项目也可以成功启动了 1.在HBuilder X 的 工具 - 设置 - 运行设置 - 微信开 ...
- spring集成kafka运行时报错:Failed to construct kafka producer] with root cause
spring集成kafka运行时报错:Failed to construct kafka producer] with root cause org.apache.kafka.common.Kafka ...
- 解决pytest运行时报错ModuleNotFoundError
封装代码后通过pytest运行时报错模块没找到错误. 导入模块前面加上这2句话解决 No modlue name '模块名'的报错. import os,sys sys.path.append(os. ...
最新文章
- 三相滤波器怎么接线_您知道家用电表如何接线吗?小编来告诉你!
- LeetCode--167--两数之和 II - 输入有序数组
- AbstractListView源码分析8
- go语言第一个程序-hello world
- 程序员的数学_数学公式太晦涩,不如用代码写出来:这是程序员学数学的独特方式...
- 安卓手机主题软件_手机看书神器!Amazon Kindleios、安卓软件
- imp遇到重复数据_数据挖掘入门 - 泰坦尼克号生存预测
- 如何看待EMNLP2021 best paper? 邱锡鹏教授:以为走错会场了
- 0x00D2DCAC 处(位于 Company.exe 中)引发的异常: 0xC0000005: 读取位置 0x00000024 时发生访问冲突。
- AS开发者转LAYA一周心得
- 【实践】Pytorch nn.Transformer的mask理解
- Spring Aop技术原理分析
- 在线供应链系统服务方案:构建企业供应链平台业务、功能、技术管理架构
- Revisiting Pixel-Wise Supervision for Face Anti-Spoofing
- 二维点集求外轮廓Java_从二维点集重建平面形状-浅议凹包算法
- 精玉PC技术GHOSTXP_SP3纯净版V10_祥和版
- 南非监管机构严厉打击Facebook的联系人共享
- django-simple-sso, django-auth-ldap, python-ldap 单点登录(一)
- 基于python管理系统论文_基于Python语言的实验室管理系统的设计与实现
- 分享一个ip反查域名的网站