在rails中的gem中设置tesseract OCR时出错

时间:2013-11-12 12:55:00

标签: ruby-on-rails gem ocr homebrew tesseract

我正在尝试在rails环境中设置tesseract-ocr gem。我已经运行了brew install tesseract,然后在应用程序上运行了一个bundle install,并且所有运行都没有错误,但是在启动应用程序时rails s)会抛出以下错误:

/Users/xxxx/.rvm/gems/ruby-1.9.2-p290@xxxx/gems/ffi-inline-0.0.4.3/lib/ffi/inline/compilers/gcc.rb:35:in `compile': compile error: see logs at /var/folders/66/pm_j0lp94gvcj0qnlcnsx9pw0000gn/T/.ffi-inline-501/4239dac38f2a721e0dc5b3750d71ce2e6fa4acb6.log (CompilationError)

它引用了以下日志文​​件:

g++ -dynamic -bundle -fPIC  -L/usr/local/Cellar/tesseract/3.02.02/lib -I/usr/local/Cellar/tesseract/3.02.02/include -o /var/folders/66/pm_j0lp94gvcj0qnlcnsx9pw0000gn/T/.ffi-inline-501/4239dac38f2a721e0dc5b3750d71ce2e6fa4acb6.dylib /var/folders/66/pm_j0lp94gvcj0qnlcnsx9pw0000gn/T/.ffi-inline-501/4239dac38f2a721e0dc5b3750d71ce2e6fa4acb6.cpp -llept 2>>/var/folders/66/pm_j0lp94gvcj0qnlcnsx9pw0000gn/T/.ffi-inline-501/4239dac38f2a721e0dc5b3750d71ce2e6fa4acb6.log
/var/folders/66/pm_j0lp94gvcj0qnlcnsx9pw0000gn/T/.ffi-inline-501/4239dac38f2a721e0dc5b3750d71ce2e6fa4acb6.cpp:1:10: fatal error: 'leptonica/allheaders.h' file not found
#include <leptonica/allheaders.h>

我遵循了以下两个问题: https://github.com/meh/ruby-tesseract-ocr/issues/3https://github.com/meh/ruby-tesseract-ocr/issues/21

它谈到了我已经完成的设置ENV变量。我在initalizers文件夹中创建了一个test.rb文件,其中包含以下变量:

ENV['CFLAGS'] = '-I/usr/local/Cellar/tesseract/3.02.02/include' 
ENV['LDFLAGS'] = '-L/usr/local/Cellar/tesseract/3.02.02/lib'

然而,这对启动应用程序时的错误没有任何影响。

我不明白更新标题时的含义。我想知道是否有人可以告诉我到底要做些什么才能使这个工作。

感谢。

3 个答案:

答案 0 :(得分:4)

也有同样的错误。我通过安装tesseract和leptonica的dev软件包解决了这个问题。

对于基于debian的系统

sudo apt-get install libleptonica-dev libtesseract-dev

对于redhat基础系统

sudo yum insall leptonica-devel tesseract-devel

这解决了我的问题。

答案 1 :(得分:2)

我已经修好了......

以防万一其他人在这里遇到问题的确切方法如下:

首先必须同时运行:

brew install tesseract

brew install leptonica

然后在初始化程序中的Gemfile NOT中,您必须将两个路径都放在库中作为env vars:

ENV['CFLAGS'] = '-I/usr/local/Cellar/tesseract/3.02.02/include -I/usr/local/Cellar/leptonica/1.69/include' 
ENV['LDFLAGS'] = '-L/usr/local/Cellar/tesseract/3.02.02/lib -L/usr/local/Cellar/leptonica/1.69/lib'

答案 2 :(得分:1)

是否有这个问题(OS X El Capitan)。通过降低tesseract降级

来修复
brew uninstall --force tesseract
brew install https://raw.githubusercontent.com/Homebrew/homebrew/8ba134eda537d2cee7daa7ebdd9f728389d9c53e/Library/Formula/tesseract.rb

并更新xcode

xcode-select --install