libtesseract.dylib
1 背景
適用于解決如下報(bào)錯(cuò):
在Java中執(zhí)行
String ocrResult = tesseract.doOCR(image);
報(bào)錯(cuò):
'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):
整體思路:
找一個(gè)libtesseract.dylib文件,放到 '/Users/username/Project/insadvisor/libtesseract.dylib'路徑下。
2 錯(cuò)誤示范
這里參考了:
注意,這里是錯(cuò)誤示范!
brew install tesseract
關(guān)于怎么安裝homebrew,怎么搞鏡像源,自己解決哈。
之后看起來(lái)一切正常,
tesseract -v
brew list tesseract
可以看版本,也搞得到libtesseract.dylib文件,但是!這樣之后,報(bào)錯(cuò)是:
'/Users/username/Library/Frameworks/tesseract.framework/tesseract' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')),
也就是說(shuō),需要x86架構(gòu)的tesseract,但是M1芯片默認(rèn)安裝的是arm架構(gòu),因此需要重新搞。
3 正確操作流程
首先,卸載剛剛安裝的arm架構(gòu)tesseract(沒(méi)裝tesseract的可以跳過(guò)這一步):
brew uninstall tesseract # 先卸載已安裝的版本
然后,依次執(zhí)行以下命令,安裝x86架構(gòu)的tesseract:
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" # 安裝x86架構(gòu)的brew
echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.zshrc # 添加環(huán)境變量
arch -x86_64 /usr/local/bin/brew install tesseract # 在x86架構(gòu)下安裝tesseract
安裝完成后,可以在終端的返回結(jié)果中看到tesseract的安裝路徑:
==> Summary
?? /usr/local/Cellar/tesseract/5.3.1: 73 files, 32.2MB
去這個(gè)路徑下,拷貝其中的
libtesseract.5.dylib注意,不要拷貝libtesseract.dylib因?yàn)檫@個(gè)libtesseract.dylib只是一個(gè)鏈接,類似快捷方式。
然后把剛剛的libtesseract.5.dylib重命名為libtesseract.dylib,粘貼到之前找不到libtesseract.dylib的路徑下即可:
把這個(gè)libtesseract.dylib文件,放到 '/Users/username/Project/insadvisor/libtesseract.dylib'路徑下。
這里注意放到你對(duì)應(yīng)的那個(gè)報(bào)錯(cuò)路徑下,別無(wú)腦照搬我的路徑哈。然后就可以了。
拷貝的時(shí)候可以在圖形界面里拷貝,或者,參考這個(gè):
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架構(gòu)的tesseract時(shí),試過(guò):
arch -x86_64 brew install tesseract
這個(gè)會(huì)報(bào)錯(cuò),
以及
brew install tesseract --force-bottle --build-from-source --arch=x86_64
這個(gè)會(huì)報(bào)錯(cuò)沒(méi)有--arch指令,但是我的homebrew已經(jīng)是最新版本了,猜測(cè)是Mac arm架構(gòu)下無(wú)此指令。