patchelf是
一个用来修改elf格式的动态库和可执行程序的小工具,可以修改动态链接库的库名字,以及链接库的RPATH。当没有安装patchelf
时,Paddle Lite的.so预测库无法被链接所以会报错。
[OHOS ERROR] ../../foundation/multimedia/swanlink_media/services/hmedia/hmedia_service_patch.sh: 2: patchelf: not found
[OHOS ERROR] run patchelf --replace-needed fail.
解决方法
这里只需安装patchelf
工具即可:
sudo apt install patchelf
安装完之后,可以使用以下命令查看patchelf 具有的功能
patchelf -h
运行能够得到如下信息:
中文翻译如下:
- 设置动态库解析器
- 设置页大小
- 设置 DT_SONAME
- 设置 rpath
- 删除 rpath
- 添加允许的 rpath 前缀
- 打印 rpath
- 强制使用 rpath
- 添加需要的动态库
- 删除需要的动态库
- 替换旧的动态库为新的
- 打印帮助信息
- 不链接默认的动态库
- 输出调试信息
- 打印版本号
从上面的功能描述中可以看到,patchelf 的主要功能与动态库解析器、rpath、动态库本身相关,可能在解决一些动态库链接程序执行的问题时能够用到。