2

我在使用 os x 和 heroku 上的 opencv 编译节点添加时遇到问题。但是,在 ubuntu 上它工作正常。

我正在使用流浪文件:

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正常编译。但是,我无法运行它,因为我收到以下错误:

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问题。

我究竟做错了什么?

4

1 回答 1

0

libopencv-dev 是一个依赖文件。您仍然需要从 sourceforge 下载主文件或从 git 克隆它然后制作。

单独安装 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


希望这可以帮助!!

于 2015-01-18T18:57:10.393 回答