linux 下Unable to load library 'tesseract': Native library (linux-x86-64/libtesseract.so
在windows上專案是可以正常執行的,部署到Linux上後,執行報異常,異常內容為:Unable to load library 'tesseract': Native library (linux-x86-64/libtesseract)
這個報錯的原因就是專案無法載入庫資原始檔 libtesseract(在linux上是.so檔案,windows是.dll檔案)
解決:
將/usr/local/lib下相關的tesseract和leptonica的library(.so)的檔案複製到 /usr/lib下,問題解決,nice
記錄一下在Linux上部署tesseract
( 所需要的 Linux 安裝包 tesseract-ocr-3.02.02.tar.gz及安裝需要的leptonica-1.68.tar.gz 英文語言包 eng.traineddata.gz 戳連結:
1,編譯環境: gcc gcc-c++ make(這個環境一般機器都具備,可以忽略)
yum install gcc gcc-c++ make
2,autoconf automake libtool libjpeg-devel libpng-devel libtiff-devel zlib-devel 可以通過yum安裝:
(1)yum install autoconf automake libtool
(2)yum install libjpeg-devel libpng-devel libtiff-devel zlib-devel
3,安裝 leptonica
下載 leptonica-1.68.tar.gz
tar-zxvf leptonica-1.68.tar.gz
(1) 進入 leptonica-1.73資料夾內(cd 命令) (2) 執行下面command./configure
make
make install
ldconfig
機器老是報錯
Exception in thread "main" java.lang.UnsatisfiedLinkError: Unable to load library 'tesseract': Native library (linux-x86-64/libtesseract.so) not found in resource path ([file:/home
/WsxcdE1/hskj/qixinbao/qixinbao-1.0.jar])
LD_LIBRARY_PATH=/usr/local/lib
LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/usr/local/lib
可能是因為系統之前沒有設定過LD_LIBRARY_PATH,於是改成這樣:
export LD_LIBRARY_PATH=/usr/local/lib
然後用 echo $LD_LIBRARY_PATH檢查一下是否真的設定成功,發現可以。
接著在該shell下執行eclipse生成的可執行檔案,沒有錯誤。
另外,如果不想每次新啟一個shell都設定LD_LIBRARY_PATH,可以編輯~/.bash_profile檔案:
$ vi ~/.bash_profile
新增:
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
這兩行,完成之後.bash_profile如下所示:
# .bash_profile