在OS X Lion上安装OpenCV

时间:2011-08-27 18:36:46

标签: ruby macos rubygems homebrew

我正在尝试为paperclip-facecrop gem安装OpenCV,但是我在安装opencv gem时遇到了问题。

我用brew安装opencv,我认为gem需要知道正确的路径?

的Gemfile

gem "paperclip", "~> 2.3"
gem "opencv", :git => "https://github.com/ser1zw/ruby-opencv"
gem "paperclip-facecrop"

的.bash_profile

    export PYTHONPATH="/usr/local/lib/python2.6/site-packages/:$PYTHONPATH"
    # OS X 10.7 Lion
    # Set the compiler to GCC (instead of default LLVM) for RVM
            # For Lion, Rubies should be built using gcc rather than llvm-gcc. Since
        # /usr/bin/gcc is now linked to /usr/bin/llvm-gcc-4.2, add the following to
        # your shell's start-up file: export CC=gcc-4.2
        # (The situation with LLVM and Ruby may improve. This is as of 07-23-2011.)
    export CC=gcc-4.2

控制台

/Users/jonathanspooner/.rvm/rubies/ruby-1.9.2-p290/bin/ruby extconf.rb 
>> check require libraries...
checking for main() in -lopencv_calib3d... yes
checking for main() in -lopencv_contrib... yes
checking for main() in -lopencv_core... yes
checking for main() in -lopencv_features2d... yes
checking for main() in -lopencv_flann... yes
checking for main() in -lopencv_gpu... yes
checking for main() in -lopencv_highgui... yes
checking for main() in -lopencv_imgproc... yes
checking for main() in -lopencv_legacy... yes
checking for main() in -lopencv_ml... yes
checking for main() in -lopencv_objdetect... yes
checking for main() in -lopencv_video... yes
checking for main() in -lstdc++... yes
>> check require headers...
checking for opencv2/core/core_c.h... yes
checking for opencv2/core/core.hpp... yes
checking for opencv2/imgproc/imgproc_c.h... yes
checking for opencv2/imgproc/imgproc.hpp... yes
checking for opencv2/video/tracking.hpp... yes
checking for opencv2/features2d/features2d.hpp... yes
checking for opencv2/flann/flann.hpp... yes
checking for opencv2/calib3d/calib3d.hpp... yes
checking for opencv2/objdetect/objdetect.hpp... yes
checking for opencv2/legacy/compat.hpp... yes
checking for opencv2/legacy/legacy.hpp... yes
checking for opencv2/highgui/highgui_c.h... yes
checking for opencv2/highgui/highgui.hpp... yes
checking for stdarg.h... yes
>> ----- optional -----
>> check ffcall...
checking for main() in -lcallback... yes
checking for callback.h... yes
>> support OpenCV::GUI::Window#set_trackbar
creating Makefile

make
Makefile:172: warning: overriding commands for target `/Users/jonathanspooner/.rvm/gems/ruby-1.9.2-p290@woodhack/bundler/gems/ruby-opencv-1162590303e6/lib'
Makefile:168: warning: ignoring old commands for target `/Users/jonathanspooner/.rvm/gems/ruby-1.9.2-p290@woodhack/bundler/gems/ruby-opencv-1162590303e6/lib'
g++ -I. -I/Users/jonathanspooner/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/x86_64-darwin11.0.0 -I/Users/jonathanspooner/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/Users/jonathanspooner/.rvm/rubies/ruby-1.9.2-p290/include/ruby-1.9.1 -I./ext/opencv -DHAVE_OPENCV2_CORE_CORE_C_H -DHAVE_OPENCV2_CORE_CORE_HPP -DHAVE_OPENCV2_IMGPROC_IMGPROC_C_H -DHAVE_OPENCV2_IMGPROC_IMGPROC_HPP -DHAVE_OPENCV2_VIDEO_TRACKING_HPP -DHAVE_OPENCV2_FEATURES2D_FEATURES2D_HPP -DHAVE_OPENCV2_FLANN_FLANN_HPP -DHAVE_OPENCV2_CALIB3D_CALIB3D_HPP -DHAVE_OPENCV2_OBJDETECT_OBJDETECT_HPP -DHAVE_OPENCV2_LEGACY_COMPAT_HPP -DHAVE_OPENCV2_LEGACY_LEGACY_HPP -DHAVE_OPENCV2_HIGHGUI_HIGHGUI_C_H -DHAVE_OPENCV2_HIGHGUI_HIGHGUI_HPP -DHAVE_STDARG_H -DHAVE_CALLBACK_H -I/usr/include -I/opt/local/include -I/usr/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE   -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long  -fno-common -pipe -I./ext/opencv   -o cverror.o -c ./ext/opencv/cverror.cpp
./ext/opencv/cverror.cpp: In function ‘void mOpenCV::cCvError::define_ruby_class()’:
./ext/opencv/cverror.cpp:143: error: ‘CV_GpuCufftCallError’ was not declared in this scope
./ext/opencv/cverror.cpp: In function ‘void mOpenCV::cCvError::raise(cv::Exception)’:
./ext/opencv/cverror.cpp:157: warning: format not a string literal and no format arguments
make: *** [cverror.o] Error 1

2 个答案:

答案 0 :(得分:1)

您似乎使用OpenCV 2.2和opencv gem的主分支,适用于OpenCV 2.3或更高版本。

尝试使用OpenCV 2.2的gem: https://github.com/ser1zw/ruby-opencv/tree/OpenCV_2.2

答案 1 :(得分:0)

同时验证您的Python路径。 OSX Lion默认使用Python 2.7,它将是:

  

export PYTHONPATH =“/ usr / local / lib / python2.7 / site-packages /:$ PYTHONPATH”