Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: opencv@5.0.0 install #398

Closed
ndaidong opened this issue Apr 20, 2016 · 6 comments
Closed

Error: opencv@5.0.0 install #398

ndaidong opened this issue Apr 20, 2016 · 6 comments

Comments

@ndaidong
Copy link

Hi there,

On my local machine with the following info:

OS: Linux Mint 17.3, 64 bit
Node: v5.10.1
NPM: 3.8.3
OpenCV: v3.1.0

I got the problem why installing node.js opencv module as below:

npm install opencv

> opencv@5.0.0 install /var/www/temp/test/node_modules/opencv
> node-pre-gyp install --fallback-to-build

make: Entering directory `/var/www/temp/test/node_modules/opencv/build'
  CXX(target) Release/obj.target/opencv/src/init.o
  CXX(target) Release/obj.target/opencv/src/Matrix.o
  CXX(target) Release/obj.target/opencv/src/OpenCV.o
  CXX(target) Release/obj.target/opencv/src/CascadeClassifierWrap.o
  CXX(target) Release/obj.target/opencv/src/Contours.o
  CXX(target) Release/obj.target/opencv/src/Point.o
  CXX(target) Release/obj.target/opencv/src/VideoCaptureWrap.o
  CXX(target) Release/obj.target/opencv/src/CamShift.o
  CXX(target) Release/obj.target/opencv/src/HighGUI.o
  CXX(target) Release/obj.target/opencv/src/FaceRecognizer.o
../src/FaceRecognizer.cc:5:2: warning: #warning TODO: port me to OpenCV 3 [-Wcpp]
 #warning TODO: port me to OpenCV 3
  ^
  CXX(target) Release/obj.target/opencv/src/Features2d.o
  CXX(target) Release/obj.target/opencv/src/BackgroundSubtractor.o
../src/BackgroundSubtractor.cc:7:2: warning: #warning TODO: port me to OpenCV 3 [-Wcpp]
 #warning TODO: port me to OpenCV 3
  ^
  CXX(target) Release/obj.target/opencv/src/Constants.o
  CXX(target) Release/obj.target/opencv/src/Calib3D.o
  CXX(target) Release/obj.target/opencv/src/ImgProc.o
  CXX(target) Release/obj.target/opencv/src/Stereo.o
../src/Stereo.cc:5:2: warning: #warning TODO: port me to OpenCV 3 [-Wcpp]
 #warning TODO: port me to OpenCV 3
  ^
  CXX(target) Release/obj.target/opencv/src/LDAWrap.o
../src/LDAWrap.cc:4:2: warning: #warning TODO: port me to OpenCV 3 [-Wcpp]
 #warning TODO: port me to OpenCV 3
  ^
  SOLINK_MODULE(target) Release/obj.target/opencv.node
/usr/bin/ld: cannot find -lippicv
collect2: error: ld returned 1 exit status
make: *** [Release/obj.target/opencv.node] Error 1
make: Leaving directory `/var/www/temp/test/node_modules/opencv/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at emitTwo (events.js:100:13)
gyp ERR! stack     at ChildProcess.emit (events.js:185:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)
gyp ERR! System Linux 3.19.0-32-generic
gyp ERR! command "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/var/www/temp/test/node_modules/opencv/build/opencv/v5.0.0/Release/node-v47-linux-x64/opencv.node" "--module_name=opencv" "--module_path=/var/www/temp/test/node_modules/opencv/build/opencv/v5.0.0/Release/node-v47-linux-x64"
gyp ERR! cwd /var/www/temp/test/node_modules/opencv
gyp ERR! node -v v5.10.1
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/var/www/temp/test/node_modules/opencv/build/opencv/v5.0.0/Release/node-v47-linux-x64/opencv.node --module_name=opencv --module_path=/var/www/temp/test/node_modules/opencv/build/opencv/v5.0.0/Release/node-v47-linux-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/var/www/temp/test/node_modules/opencv/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:100:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:185:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:850:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
node-pre-gyp ERR! System Linux 3.19.0-32-generic
node-pre-gyp ERR! command "/usr/local/bin/node" "/var/www/temp/test/node_modules/opencv/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /var/www/temp/test/node_modules/opencv
node-pre-gyp ERR! node -v v5.10.1
node-pre-gyp ERR! node-pre-gyp -v v0.6.17
node-pre-gyp ERR! not ok 
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/var/www/temp/test/node_modules/opencv/build/opencv/v5.0.0/Release/node-v47-linux-x64/opencv.node --module_name=opencv --module_path=/var/www/temp/test/node_modules/opencv/build/opencv/v5.0.0/Release/node-v47-linux-x64' (1)
npm WARN enoent ENOENT: no such file or directory, open '/var/www/temp/test/package.json'
npm WARN test No description
npm WARN test No repository field.
npm WARN test No README data
npm WARN test No license field.
npm ERR! Linux 3.19.0-32-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "opencv"
npm ERR! node v5.10.1
npm ERR! npm  v3.8.3
npm ERR! code ELIFECYCLE

npm ERR! opencv@5.0.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the opencv@5.0.0 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the opencv package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs opencv
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls opencv
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /var/www/temp/test/npm-debug.log

Do you have any opinion to solve it?

Thanks,
Dong

@endjay
Copy link

endjay commented May 13, 2016

i had the same problem

@erikusaj
Copy link

erikusaj commented May 21, 2016

I was struggling with similar issues both on OS X as well as on virtual boxes provisioned from Vagrantfiles or Dockerfiles.

npm ERR! Linux 3.10.0-327.13.1.el7.x86_64
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.3.2
npm ERR! npm  v2.14.12
npm ERR! code ELIFECYCLE

npm ERR! opencv@3.2.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the opencv@3.2.0 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the opencv package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR!     npm owner ls opencv

Took me some time to figure out what is wrong. First of all I tried to figure what OpenCV libraries are installed. And created a node script to check different requirements. Still work in progress, but helped me figure out I was missing pgk-config and correctly set environment variable PKG_CONFIG_PATH.

I was able to successfully npm install opencv -g after identifying and fixing above issues both on Mac OS X as on Centos Linux.

Below are some some sample outputs from my script.
Hope this helps finding a solution to your issues.

$ node checkOpenCV.js

Linux ; linux ; x64 ; 3.10.0-327.13.1.el7.x86_64 ; 1929408512 ; 1126473728
OpenCV ; 2.4.12 ; /usr/local/opencv/lib/pkgconfig/opencv.pc
Environment variable PKG_CONFIG_PATH is OK
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/opencv/lib/pkgconfig/

pgk-config: 0.27.1
Node: v4.3.2
Npm: 2.14.12 ; /home/vagrant/.npm-global
$ node checkOpenCV

Darwin ; darwin ; x64 ; 15.4.0 ; 4294967296 ; 21180416
OpenCV ; 2.4.12 ; /usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig/opencv.pc
Checking for environment variable PKG_CONFIG_PATH failed.
IMPORTANT: make sure to add enironment paths:

  PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig
  export PKG_CONFIG_PATH

pgk-config: 0.29.1
Node: v6.1.0
Npm: 3.9.2 ; /usr/local

@DeBraid
Copy link

DeBraid commented May 25, 2016

Similar issue today, tried the about script, output is:

Edit:

  • it appears installing opencv@5.* creates an issues that is likely Meteor-specific (they lock the node version at 0.10.*, per this issue.

However, same error occurs when installing opencv@3.*;

Checking Config:

| => node checkOpenCV/checkOpenCV.js

OS: Darwin ; darwin ; x64 ; 14.0.0 ; 4294967296 ; 309305344
OpenCV: 2.4.12 ; /usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig/opencv.pc
Environment variable PKG_CONFIG_PATH is OK
PKG_CONFIG_PATH=:/usr/local/Cellar/opencv/2.4.12_2/lib/pkgconfig

pgk-config: 0.29
Node: v4.3.2
Npm: 2.14.12 ; /Users/derekbraid/.nvm/versions/node/v4.3.2

Then run npm install opencv, throws error:

| => meteor npm install opencv
npm WARN engine opencv@5.0.0: wanted: {"node":">=0.12"} (current: {"node":"0.10.43","npm":"2.14.22"})
-
> opencv@5.0.0 install /Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv
> node-pre-gyp install --fallback-to-build

gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN EACCES user "derekbraid" does not have permission to access the dev dir "/Users/derekbraid/.node-gyp/0.10.43"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/var/folders/8_/y5kyg1rn23sdnpdm2cqq3qdr0000gn/T/.node-gyp"
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
gyp WARN download NVM_NODEJS_ORG_MIRROR is deprecated and will be removed in node-gyp v4, please use NODEJS_ORG_MIRROR
  CXX(target) Release/obj.target/opencv/src/init.o
  CXX(target) Release/obj.target/opencv/src/Matrix.o
  CXX(target) Release/obj.target/opencv/src/OpenCV.o
  CXX(target) Release/obj.target/opencv/src/CascadeClassifierWrap.o
  CXX(target) Release/obj.target/opencv/src/Contours.o
  CXX(target) Release/obj.target/opencv/src/Point.o
  CXX(target) Release/obj.target/opencv/src/VideoCaptureWrap.o
  CXX(target) Release/obj.target/opencv/src/CamShift.o
  CXX(target) Release/obj.target/opencv/src/HighGUI.o
  CXX(target) Release/obj.target/opencv/src/FaceRecognizer.o
  CXX(target) Release/obj.target/opencv/src/Features2d.o
  CXX(target) Release/obj.target/opencv/src/BackgroundSubtractor.o
  CXX(target) Release/obj.target/opencv/src/Constants.o
  CXX(target) Release/obj.target/opencv/src/Calib3D.o
  CXX(target) Release/obj.target/opencv/src/ImgProc.o
  CXX(target) Release/obj.target/opencv/src/Stereo.o
In file included from ../src/Stereo.cc:10:
In file included from /usr/local/Cellar/opencv/2.4.12_2/include/opencv2/legacy/legacy.hpp:49:
/usr/local/Cellar/opencv/2.4.12_2/include/opencv2/ml/ml.hpp:961:18: warning: 'CvForestTree::train' hides overloaded virtual functions
      [-Woverloaded-virtual]
    virtual bool train( CvDTreeTrainData* trainData, const CvMat* _subsample_idx, CvRTrees* forest );
                 ^
/usr/local/Cellar/opencv/2.4.12_2/include/opencv2/ml/ml.hpp:867:18: note: hidden overloaded virtual function 'CvDTree::train' declared
      here: different number of parameters (2 vs 3)
    virtual bool train( CvMLData* trainData, CvDTreeParams params=CvDTreeParams() );
                 ^
/usr/local/Cellar/opencv/2.4.12_2/include/opencv2/ml/ml.hpp:877:26: note: hidden overloaded virtual function 'CvDTree::train' declared
      here: different number of parameters (8 vs 3)
    CV_WRAP virtual bool train( const cv::Mat& trainData, int tflag,
                         ^
/usr/local/Cellar/opencv/2.4.12_2/include/opencv2/ml/ml.hpp:1149:18: warning: 'CvBoostTree::train' hides overloaded virtual functions
      [-Woverloaded-virtual]
    virtual bool train( CvDTreeTrainData* trainData,
                 ^
/usr/local/Cellar/opencv/2.4.12_2/include/opencv2/ml/ml.hpp:867:18: note: hidden overloaded virtual function 'CvDTree::train' declared
      here: different number of parameters (2 vs 3)
    virtual bool train( CvMLData* trainData, CvDTreeParams params=CvDTreeParams() );
                 ^
/usr/local/Cellar/opencv/2.4.12_2/include/opencv2/ml/ml.hpp:877:26: note: hidden overloaded virtual function 'CvDTree::train' declared
      here: different number of parameters (8 vs 3)
    CV_WRAP virtual bool train( const cv::Mat& trainData, int tflag,
                         ^
2 warnings generated.
  CXX(target) Release/obj.target/opencv/src/LDAWrap.o
  SOLINK_MODULE(target) Release/opencv.node
ld: library not found for -lgcc_s.10.5
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Release/opencv.node] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Darwin 14.0.0
gyp ERR! command "/Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/node" "/Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/build/opencv/v5.0.0/Release/node-v11-darwin-x64/opencv.node" "--module_name=opencv" "--module_path=/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/build/opencv/v5.0.0/Release/node-v11-darwin-x64"
gyp ERR! cwd /Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv
gyp ERR! node -v v0.10.43
gyp ERR! node-gyp -v v3.3.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/node /Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/build/opencv/v5.0.0/Release/node-v11-darwin-x64/opencv.node --module_name=opencv --module_path=/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/build/opencv/v5.0.0/Release/node-v11-darwin-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
node-pre-gyp ERR! stack     at maybeClose (child_process.js:766:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:833:5)
node-pre-gyp ERR! System Darwin 14.0.0
node-pre-gyp ERR! command "node" "/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv
node-pre-gyp ERR! node -v v0.10.43
node-pre-gyp ERR! node-pre-gyp -v v0.6.17
node-pre-gyp ERR! not ok
Failed to execute '/Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/node /Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/build/opencv/v5.0.0/Release/node-v11-darwin-x64/opencv.node --module_name=opencv --module_path=/Users/derekbraid/Desktop/apps/tmp/hockey-ai-demo/node_modules/opencv/build/opencv/v5.0.0/Release/node-v11-darwin-x64' (1)
npm ERR! Darwin 14.0.0
npm ERR! argv "node" "/Users/derekbraid/.meteor/packages/meteor-tool/.1.3.2_4.njy7cj++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/bin/npm" "install" "opencv"
npm ERR! node v0.10.43
npm ERR! npm  v2.14.22
npm ERR! code ELIFECYCLE

npm ERR! opencv@5.0.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the opencv@5.0.0 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the opencv package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-pre-gyp install --fallback-to-build
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs opencv
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR!     npm owner ls opencv
npm ERR! There is likely additional logging output above.

@danschultzer
Copy link
Collaborator

For anyone having trouble with with install OpenCV 3 / node-opencv@5.0.0 on Mac with lippicv, then this fix worked for me:

brew install opencv3
brew link --force opencv3
ln -s /usr/local/Cellar/opencv3/3.1.0_3/share/OpenCV/3rdparty/lib/libippicv.a /usr/local/lib/
npm install opencv

@bradrisse
Copy link

If you are using brew and are still getting the node-pre-gyp fallback error, try:

brew reinstall pkg-config

@timbowhite
Copy link

timbowhite commented Sep 15, 2016

For anyone else on CentOS/RHEL 6, make sure you have node v0.12 or higher installed (see the opencv package.json), then:

yum install centos-release-scl devtoolset-3-toolchain scl-utils

Add the following to your ~/.bashrc or ~/.bash_profile or something like /etc/profile.d/devtoolset-3:

. /opt/rh/devtoolset-3/enable
export CC=/opt/rh/devtoolset-3/root/usr/bin/gcc
export CXX=/opt/rh/devtoolset-3/root/usr/bin/g++
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

NOTE: your PKG_CONFIG_PATH might be different, use the script @erikusaj wrote to find out.

Log out of your session, log back in, make sure g++ --version reports >= 4.9.x, ie:

g++ --version
g++ (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)

And then your npm install opencv should work.

thanks to @erikusaj

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants