Ubuntu Linux 上的 Tess4J,UnsatisfiedLinkError

Tess4J on Ubuntu Linux, UnsatisfiedLinkError

我在 Tomcat+Ubuntu(Linux)

中使用 Tess4j 得到一个 UnsatisfiedLinkError
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 位)

一些 Whosebug 搜索提供了有关错误版本或库不存在的线索,但库就在那里...

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

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

Tess4J 2.0 与 Tesseract 3.03RC 兼容。因为你的是 3.02,所以你需要 Tess4J 1.x 版本。

这可能是 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

之后我解决了这个问题