4

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

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

宝石文件

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
4

2 回答 2

1

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

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

于 2011-08-29T12:54:24.893 回答
0

还要验证您的 Pythonpath。OSX Lion 默认使用 Python 2.7,即:

导出 PYTHONPATH="/usr/local/lib/python2.7/site-packages/:$PYTHONPATH"

于 2011-09-19T16:43:37.673 回答