我正在尝试编译 OCR 0.4,谷歌的光学识别程序。
正如自述文件中所写,他们需要:
1) 确保您安装了这些软件包(当前的 Ubuntu/Debian 版本应该可以工作): libpng(带有标题) libjpeg(带有标题) libtiff(带有标题)
2) 从http://code.google.com/p/iulib安装 iulib
3) 从 Subversion 存储库 (http://code.google.com/p/tesseract-ocr) 安装当前版本的 tesseract
4) 从发布目录,运行 ./configure make sudo make install
我已经完成了上面所有的段落,然后当我在命令行中输入“./configure”时,我收到了这个错误:
检查 /usr/include/tesseract/baseapi.h... 没有配置:错误:找不到 tesseract!不想用就选--without-tesseract 或者用--with-tesseract=指定安装路径
到目前为止,我试图解决这个问题,是尝试通过指定我通过键入得到的 tesseract 路径来"which tesseract"
编译
/usr/local/bin/tesseract
所以我输入./configure --with-tesseract=/usr/local/bin/tesseract
了同样的错误。
为什么我会得到这个?
提前致谢
编辑-使用下面答案中所述的方法后,出现以下错误:
本地主机:ocropus giorgio$ make 全部在 . g++ -DPACKAGE_NAME=\"ocropus\" -DPACKAGE_TARNAME=\"ocropus\" -DPACKAGE_VERSION=\"0.3\" -DPACKAGE_STRING=\"ocropus\ 0.3\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"ocropus\" -DVERSION=\"0.3\" -DSTDC_HEADERS=1 -DHAVE_SYS_WAIT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H_1 -DHAVESTDLIB=1 =1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_UNISTD_H=1 -DHAVE_WCHAR_H=1 -DHAVE_LIBZ=1 -DHAVE_LIBPNG=1 -DHAVE_LIBJPEG=1 -DHAVE_LIBTIFF=1 -DHAVE_LIBIULIB=1 -DHAVE_LIBPTHREAD=1 -DHAVE_LIBTESSERACT_FULL=1 -DHAVE_LIBLEPT=1 -DHAVE_LIBGSLCBLAS=1 -DHAVE_LIBGSL=1 -DHAVE_LIBBLAS=1 -DHAVE_FORK=1 -DHAVE_VFORK=1 -DHAVE_WORKING_VFORK=1 -DHAVE_WORKING_FORK=1 -DHAVE_DUP2=1 -DHAVE_MEMSET=1 -DHAVE_SQRT=1 -DHAVE_STRCHR=1 -DHAVE_STRDUP=1 -DHAVE_STRRCHR =1 -I。-I./包括 -I.
test -f './ocr-line/glclass.cc' || echo './'
./ocr-line/glclass.cc 在 ./include/glinerec.h:57 包含的文件中,来自 ./ocr-line/glclass.cc:5: ./include/glutils.h:139: 警告:忽略 # pragma omp 并行 ./ocr-line/glclass.cc:105:警告:忽略 #pragma omp 并行 ./ocr-line/glclass.cc:129:警告:忽略 #pragma omp 并行 ./ocr-line/glclass.cc :175: 警告: 忽略#pragma omp 并行./ocr-line/glclass.cc:236: 警告: 忽略#pragma omp 并行./ocr-line/glclass.cc:421: 警告: 忽略#pragma omp 并行./ ocr-line/glclass.cc:644:警告:忽略 #pragma omp 并行 ./ocr-line/glclass.cc:1166:警告:忽略 #pragma omp 并行 ./ocr-line/glclass.cc:1403:警告:忽略#pragma omp parallel ./ocr-line/glclass.cc:1623:警告:忽略#pragma omp parallel ./ocr-utils/components.h:275:警告:'struct ocropus::IComponentConstructor' 具有虚函数但非虚析构函数 /usr/local/include/colib/narray.h: In member function 'colib::narray& colib::narray::truncate(int) [with T = char]': 。 /ocr-utils/narray-binio.h:48:从此处实例化 /usr/local/include/colib/narray.h:261:警告:在返回非 void /usr/local/include/colib 的函数中没有返回语句/narray.h: 在成员函数 'colib::narray& colib::narray::truncate(int) [with T = int]': ./ocr-line/glclass.cc:295: 从这里 /usr/local 实例化/include/colib/narray.h:261:警告:在函数中没有返回语句返回非 void /usr/local/include/colib/rowarrays.h:在函数'T colib::rowdist_euclidean(colib::narray&, int , colib::narray&) [with T = float]': ./ocr-line/glclass.cc:396:
从这里实例化 /usr/local/include/colib/rowarrays.h:94: 错误: 重载 'sqrt(float)' 的调用不明确 /usr/local/include/colib/iarith.h:345: 注意:候选人是: colib::interval colib::sqrt(colib::interval) /usr/local/include/colib/iarith.h:620: 注意:
colib::dinterval colib::sqrt(colib::dinterval) ./ocr- utils/components.h:在全局范围内:./ocr-utils/components.h:在“ocropus::ComponentConstructorNew”的实例化中:./ocr-utils/components.h:306:从“void ocropus::component_register”实例化(const char*, bool) [with T = glinerec::MappedClassifier]' ./ocr-line/glclass.cc:1795:
从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew 的实例化中': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::Float8Buffer]' ./ocr-line/glclass.cc:1796 实例化: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus:: 的实例化中ComponentConstructorNew': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::KnnClassifier]' 实例化 ./ocr-line/glclass.cc: 1798:从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew 的实例化中': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::BitNN]' ./ocr-line/glclass.cc:1799 实例化: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus:: 的实例化中ComponentConstructorNew': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' 实例化 ./ocr-line/glclass.cc: 1801:/ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 有虚函数但非虚析构函数./ocr-utils/components.h: 在'ocropus::ComponentConstructorNew' 的实例化中: ./ ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::BitNN]' 实例化 ./ocr-line/glclass.cc:1799: 从这里实例化./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew' 的实例化中: 。 /ocr-utils/components.h:306: 实例化自 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' ./ocr-line/glclass.cc:1801:/ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 有虚函数但非虚析构函数./ocr-utils/components.h: 在'ocropus::ComponentConstructorNew' 的实例化中: ./ ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::BitNN]' 实例化 ./ocr-line/glclass.cc:1799: 从这里实例化./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew' 的实例化中: 。 /ocr-utils/components.h:306: 实例化自 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' ./ocr-line/glclass.cc:1801:ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew' 的实例化中: ./ocr-utils/components.h:306: 从 'void ocropus::component_register 实例化(const char*, bool) [with T = glinerec::BitNN]' ./ocr-line/glclass.cc:1799: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus: :ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew' 的实例化中: ./ocr-utils/components.h:306: 从 'void ocropus:: 实例化component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' ./ocr-line/glclass.cc:1801:ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew' 的实例化中: ./ocr-utils/components.h:306: 从 'void ocropus::component_register 实例化(const char*, bool) [with T = glinerec::BitNN]' ./ocr-line/glclass.cc:1799: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus: :ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew' 的实例化中: ./ocr-utils/components.h:306: 从 'void ocropus:: 实例化component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' ./ocr-line/glclass.cc:1801:在 'ocropus::ComponentConstructorNew' 的实例化中:./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::BitNN]' ./ocr -line/glclass.cc:1799: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h :在 'ocropus::ComponentConstructorNew' 的实例化中:./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' 实例化。/ ocr 线/glclass.cc:1801:在 'ocropus::ComponentConstructorNew' 的实例化中:./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::BitNN]' ./ocr -line/glclass.cc:1799: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h :在 'ocropus::ComponentConstructorNew' 的实例化中:./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' 实例化。/ ocr 线/glclass.cc:1801:从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew 的实例化中': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' ./ocr-line/glclass.cc:1801 实例化:从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew 的实例化中': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::AutoMlpClassifier]' ./ocr-line/glclass.cc:1801 实例化:
从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew2 的实例化中': ./ocr-utils/components.h:310:
实例化自 'void ocropus::component_register2(const char*, bool) [with T = glinerec::MappedClassifier, S = glinerec::AutoMlpClassifier]' ./ocr-行/glclass.cc:1802:
从这里实例化 ./ocr-utils/components.h:286: 警告: 'struct ocropus::ComponentConstructorNew2' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus::ComponentConstructorNew 的实例化中': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::AdaBoost]' ./ocr-line/glclass.cc:1804 实例化: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus:: 的实例化中ComponentConstructorNew2': ./ocr-utils/components.h:310: 实例化自 'void ocropus::component_register2(const char*, bool) [with T = glinerec::MappedClassifier, S = glinerec::AdaBoost]' ./ocr -line/glclass.cc:1805:从此处实例化 ./ocr-utils/components.h:286:警告:'struct ocropus::ComponentConstructorNew2' 具有虚拟函数,但非虚拟析构函数 ./ocr-utils/components.h:在 'ocropus: 的实例化中: :ComponentConstructorNew': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::CascadedMLP]' ./ocr-line/glclass.cc 实例化:1807: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 ./ocr-utils/components.h: 在 'ocropus 的实例化中::ComponentConstructorNew2': ./ocr-utils/components.h:310: 从 'void ocropus::component_register2(const char*, bool) [with T = glinerec::MappedClassifier, S = glinerec::CascadedMLP]' 实例化。/ocr-line/glclass.cc:1808: 从这里实例化 ./ocr-utils/components.h:286: 警告: 'struct ocropus::ComponentConstructorNew2' 具有虚函数但非虚析构函数 ./ocr-utils/components .h:在 'ocropus::ComponentConstructorNew' 的实例化中:./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::LatinClassifier]' 实例化./ocr-line/glclass.cc:1810: 从这里实例化 ./ocr-utils/components.h:280: 警告: 'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 make[1]:ComponentConstructorNew': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::LatinClassifier]' 实例化 ./ocr-line/glclass.cc: 1810:从此处实例化 ./ocr-utils/components.h:280:警告:'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 make[1]:ComponentConstructorNew': ./ocr-utils/components.h:306: 从 'void ocropus::component_register(const char*, bool) [with T = glinerec::LatinClassifier]' 实例化 ./ocr-line/glclass.cc: 1810:从此处实例化 ./ocr-utils/components.h:280:警告:'struct ocropus::ComponentConstructorNew' 具有虚函数但非虚析构函数 make[1]:* [glclass.o] 错误 1 make: * [all-recursive] 错误 1