在OS X和Heroku上编译节点插件w / opencv

我有一个问题在os x和heroku上用opencv编译节点添加。 然而,在Ubuntu上它工作正常。

我正在使用vagrant文​​件:

Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.vm.provision :shell, :inline => $BOOTSTRAP_SCRIPT # see below end $BOOTSTRAP_SCRIPT = <<EOF set -e # Stop on any error # Make vagrant automatically go to /vagrant when we ssh in. echo "cd /vagrant" | sudo tee -a ~vagrant/.profile sudo apt-get update -y sudo apt-get install -y build-essential python g++ make curl git sudo apt-get install -y libopencv-dev libeigen3-dev curl http://nodejs.org/dist/v0.10.35/node-v0.10.35-linux-x64.tar.gz | \ tar -C /usr/local/ --strip-components=1 -xvz; \ npm update -g npm echo VAGRANT IS READY. EOF 

我有一个binding.gyp文件:

  { "targets": [{ "target_name": "module", "sources": [ "node_src/module.cc", "src/Candidate.cpp", "src/Image.cpp", "src/LearnerEngine.cpp", "src/ShaheenTracker.cpp" ], 'libraries': [ '<!@(pkg-config --libs opencv)' ], 'include_dirs': [ 'include/', "<!(node -e \"require('nan')\")" ], 'cflags': [ '<!@(pkg-config --cflags "opencv <= 3.0.0" )', '-std=c++11', '-Wall', '-fPIC' ], 'cflags!': ['-fno-exceptions'], 'cflags_cc!': ['-fPIC', '-fno-rtti', '-fno-exceptions', '--enable-auto-import'], "conditions": [ ['OS=="mac"', { 'xcode_settings': { 'OTHER_CFLAGS': [ "-mmacosx-version-min=10.7", "-std=c++11", "-stdlib=libc++", '<!@(pkg-config --cflags opencv)' ], "GCC_ENABLE_CPP_RTTI": "YES", "GCC_ENABLE_CPP_EXCEPTIONS": "YES" } }] ] }] } 

在OS X上,我可以用npm i编译npm i很好。 但是,我不能运行它,因为我得到以下错误:

 1): Symbol not found: __ZNK2cv11_InputArray12getMatVectorERNSt3__16vectorINS_3MatENS1_9allocatorIS3_EEEE 

在Heroku上,我使用https://github.com/ddollar/heroku-buildpack-apt获取软件包,并具有以下Aptfile:

 libeigen3-dev libopencv-dev 

但是,我得到以下错误:

 remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_contrib.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_core.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_features2d.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_flann.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_gpu.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_highgui.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_imgproc.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_legacy.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_ml.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_objdetect.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_ocl.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_photo.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_stitching.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_superres.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_ts.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_video.so: No such file or directory remote: g++: error: /usr/lib/x86_64-linux-gnu/libopencv_videostab.so: No such file or directory 

我认为这是一个pkg-config问题。

我究竟做错了什么?

libopencv-dev是一个依赖文件。你仍然需要从sourceforge下载主文件,或者从git中克隆它,然后make。

分别安装OpenCV应该解决问题。
http://wiki.nuigroup.com/Installing_OpenCV_on_Mac_OS_X
这里是一个在Ubuntu中安装OpenCV的脚本供参考
https://github.com/jayrambhia/Install-OpenCV/blob/master/Ubuntu/2.4/opencv2_4_5.sh

希望这可以帮助!!