libtesseract.dylib
1 背景
适用于解决如下报错:
在Java中执行
String ocrResult = tesseract.doOCR(image);
报错:
'libtesseract.dylib' (no such file), '/usr/lib/libtesseract.dylib' (no such file),
'/Users/username/Project/insadvisor/libtesseract.dylib' (no such file)
dlopen(libtesseract.dylib, 0x0009):
整体思路:
找一个libtesseract.dylib文件,放到 '/Users/username/Project/insadvisor/libtesseract.dylib'路径下。
2 错误示范
这里参考了:
注意,这里是错误示范!
brew install tesseract
关于怎么安装homebrew,怎么搞镜像源,自己解决哈。
之后看起来一切正常,
tesseract -v
brew list tesseract
可以看版本,也搞得到libtesseract.dylib文件,但是!这样之后,报错是:
'/Users/username/Library/Frameworks/tesseract.framework/tesseract' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')),
也就是说,需要x86架构的tesseract,但是M1芯片默认安装的是arm架构,因此需要重新搞。
3 正确操作流程
首先,卸载刚刚安装的arm架构tesseract(没装tesseract的可以跳过这一步):
brew uninstall tesseract # 先卸载已安装的版本
然后,依次执行以下命令,安装x86架构的tesseract:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # 安装x86架构的brew
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.zshrc # 添加环境变量
arch -x86_64 /usr/local/bin/brew install tesseract # 在x86架构下安装tesseract
安装完成后,可以在终端的返回结果中看到tesseract的安装路径:
==> Summary
🍺 /usr/local/Cellar/tesseract/5.3.1: 73 files, 32.2MB
去这个路径下,拷贝其中的
libtesseract.5.dylib注意,不要拷贝libtesseract.dylib因为这个libtesseract.dylib只是一个链接,类似快捷方式。
然后把刚刚的libtesseract.5.dylib重命名为libtesseract.dylib,粘贴到之前找不到libtesseract.dylib的路径下即可:
把这个libtesseract.dylib文件,放到 '/Users/username/Project/insadvisor/libtesseract.dylib'路径下。
这里注意放到你对应的那个报错路径下,别无脑照搬我的路径哈。然后就可以了。
拷贝的时候可以在图形界面里拷贝,或者,参考这个:
mkdir -p /Users/username/Library/Frameworks/tesseract.framework/
cp /opt/homebrew/Cellar/tesseract/5.3.1/bin/tesseract /Users/username/Library/Frameworks/tesseract.framework/
4 一些失败尝试:
安装x86架构的tesseract时,试过:
arch -x86_64 brew install tesseract
这个会报错,
以及
brew install tesseract --force-bottle --build-from-source --arch=x86_64
这个会报错没有--arch指令,但是我的homebrew已经是最新版本了,猜测是Mac arm架构下无此指令。