搜了一下,似乎有好几个:
https://cn.bing.com/search?q=ofd+%E9%98 ... 9%A8+linux
这个“葫芦OFD阅读器”官网就有下载:
http://oneofd.cn/aboutus/
不过似乎是给 deepin 编译的,在 ubuntu 20.04 里运行不起来。
解开包,ldd 看主程序 ofdreader 的依赖库,可以看到基本都调用自带的库。
除 QT 库外其他库文件全部删掉,让它尽量调用 ubuntu 系统的公共库。
但 ubuntu 20.04 里的 QT 是 5.12,它依赖包里附带的 5.15,所以包自带的 QT 库保留。
然后,用 patchelf 替换掉几个依赖库文件,比如:
patchelf --replace-needed libquazip.so.1 libquazip5.so.1 ofdreader
发现它附带的QT库还依赖 libicuuc.so.56、libicudata.so.56、libicui18n.so.56,而我20.04系统里只有自己额外安装的 libicui57,也一并用 patchelf 替换调:
patchelf --replace-needed libicudata.so.56 libicudata.so.57 ./lib/libQt5Core.so.5
patchelf --replace-needed libicuuc.so.56 libicuuc.so.57 ./lib/libQt5Core.so.5
patchelf --replace-needed libicui18n.so.56 libicui18n.so.57 ./lib/libQt5Core.so.5
patchelf --remove-needed libicudata.so.56
patchelf --remove-needed libicuuc.so.56
然后用十六进制编辑器打开 ./lib/libQt5Core.so.5 搜索ASCII字符,把几个函数中 Names_56 字样都替换成 Names_57。
最后就能开心地运行起来了,功能一切正常: