Tess4J在Ubuntu Linux上,UnsatisfiedLinkError

时间:2015-04-14 11:46:11

标签: linux tomcat ubuntu tesseract tess4j

我在Tomcat + Ubuntu(Linux)中使用Tess4j得到一个不满意的错误

java.lang.UnsatisfiedLinkError: Error looking up function 'TessBaseAPICreate': /usr/lib/libtesseract.so.3.0.2: undefined symbol: TessBaseAPICreate
at com.sun.jna.Function.<init>(Function.java:208)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:536)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:513)
at com.sun.jna.NativeLibrary.getFunction(NativeLibrary.java:499)

库是通过apt-get install tesseract-ocr安装的,Tess4j版本是2.0.0,一切似乎都适用于MacOS / OracleJDK1.7(64位),但不适用于Ubuntu / Linux / OracleJDK1.7(64位)

一些stackoverflow-search提供了关于错误版本或库不存在的线索,但是库就在那里......

ls -al /usr/lib/libtesseract.so.3.0.2
-rw-r--r-- 1 root root 4219544 Feb 25  2012 /usr/lib/libtesseract.so.3.0.2

有人提出解决方案或提示吗?

2 个答案:

答案 0 :(得分:1)

Tess4J 2.0与Tesseract 3.03RC兼容。由于你的是3.02,你需要Tess4J 1.x版本。

答案 1 :(得分:0)

这可能是tesseract的版本与ubuntu版本不兼容

至于我,我的程序在win10中运行,而ubuntu 16没有错误,但在ubuntu 12.04中发生此错误

也许我通过命令

安装tesseract
sudo apt-get install tesseract-ocr

但是在我安装流程之后确实在ubuntu 12中

sudo apt-get install libpng-dev libjpeg-dev libtiff-dev zlib1g-dev
sudo apt-get install gcc g++
sudo apt-get install autoconf automake libtool checkinstall

从源码安装Leptonica。撰写时的最新版本是1.69。

wget http://www.leptonica.org/source/leptonica-1.69.tar.gz  (if you can't,download leptonica-1.69.tar.gz from the internet)
tar -zxvf leptonica-1.69.tar.gz
cd leptonica-1.69
./configure
make
sudo checkinstall
sudo ldconfig

然后从源代码安装Tesseract OCR。

wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.02.tar.gz
(maybe you can download tesseract-ocr-3.02.02.tar.gz from the internet and then upload to the server )
tar -zxvf tesseract-ocr-3.02.02.tar.gz
cd tesseract-ocr
./autogen.sh
./configure
make (this may take a while)
sudo make install
sudo ldconfig

之后我解决了这个问题