Description
Hey there, I'm really grateful that you've put together this gem. I'm looking to do some OCR work for a grad school project and would love to be working in Ruby and Tesseract seems like the right OCR library to be working with.
So far I'm having a hard time getting up and running though. Below are the crashes that happen when I try to include 'tesseract or 'tesseract-ocr' in IRB. Could you take a look at what I'm doing and see if there's anything apparently wrong?
FYI things I know/am running
- OS X 10.6
- Ruby 1.9.2
- tesseract v 3.0.1 (installed via Port)
- ruby gem tesseract (0.1.0)
- ruby gem tesseract-ocr (0.1.3)
- ruby gem ffi-inline (0.0.2)
- ruby gem ffi-inliner (0.2.4)
- GCC 4.2.1
When I try to include Tesseract in a IRB it throws the follow error:
ruby-1.9.2-head > require 'tesseract'
NameError: uninitialized constant Object::Tesseract
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/tesseract-ocr-0.1.3/bin/tesseract.rb:57:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:33:in `require'
from <internal:lib/rubygems/custom_require>:33:in `rescue in require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from (irb):1
from /Users/matthewforr/.rvm/rubies/ruby-1.9.2-head/bin/irb:17:in `<main>'
And when I require Tesseract-OCR I get this error:
ruby-1.9.2-head > require 'tesseract-ocr'
CompilationError: compile error: see logs at /var/folders/Iq/IqwSThA+GH4e2Qhf3ycWO++++TI/-Tmp-/.ffi-inliner-501/b18ff1df59dbd350a8f5ea7d96fecaafd9e1d4ea.log
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/compilers/gcc.rb:19:in `compile'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/c.rb:101:in `shared_object'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders.rb:80:in `block in build'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders.rb:77:in `instance_eval'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders.rb:77:in `build'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/inliner.rb:44:in `singleton_inline'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/inliner.rb:29:in `inline'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/tesseract-ocr-0.1.3/lib/tesseract/c.rb:34:in `<module:C>'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/tesseract-ocr-0.1.3/lib/tesseract/c.rb:31:in `<module:Tesseract>'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/tesseract-ocr-0.1.3/lib/tesseract/c.rb:29:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/tesseract-ocr-0.1.3/lib/tesseract/api.rb:26:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/tesseract-ocr-0.1.3/lib/tesseract-ocr.rb:35:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from (irb):2
The results of that log look like:
/var/folders/Iq/IqwSThA+GH4e2Qhf3ycWO++++TI/-Tmp-/.ffi-inliner-501/b18ff1df59dbd350a8f5ea7d96fecaafd9e1d4ea.cpp:1:30: error: tesseract/strngs.h: No such file or directory
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: expected constructor, destructor, or type conversion before ‘*’ token
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: variable or field ‘destroy_string’ declared void
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: ‘STRING’ was not declared in this scope
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: ‘value’ was not declared in this scope
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: ‘STRING’ was not declared in this scope
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: ‘value’ was not declared in this scope
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: expected ‘,’ or ‘;’ before ‘{’ token
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: ‘STRING’ was not declared in this scope
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: ‘value’ was not declared in this scope
/Users/matthewforr/.rvm/gems/ruby-1.9.2-head/gems/ffi-inline-0.0.2/lib/ffi/inliner/builders/cpp.rb:25: error: expected ‘,’ or ‘;’ before ‘{’ token
I believe I've correctly pulled down your version of ffi-inline and installed it but that could be the sticking point. I also noticed that a few commits back you changed the gemspec to no longer require ffi-inliner but ffi-inline instead yet in the c.rb file it's using ffi-inliner. I'm kind of a newb so maybe that isn't the problem.
Any thoughts?