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
之后我解决了这个问题
我在 Tomcat+Ubuntu(Linux)
中使用 Tess4j 得到一个 UnsatisfiedLinkErrorjava.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
之后我解决了这个问题