記錄一下opencv4nodejs安裝和使用過程的坑,方便后期查閱
安裝
opencv4nodejs自己提供了一個工具opencv-build,因此實(shí)際使用過程中無需自己安裝opencv,但該工具是從源碼編譯安裝,因此耗時較多,且容易出問題
官方文檔中有自己手動安裝的方法,對mac用戶來說相對簡單,使用brew進(jìn)行安裝即可.
當(dāng)使用手動安裝時,需要配置一個全局的環(huán)境變量來告訴安裝腳本無需自動安裝
# Setting up OpenCV on your own will require you to set an environment variable to prevent the auto build script to run:
# linux and osx:
export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
# on windows:
set OPENCV4NODEJS_DISABLE_AUTOBUILD=1
# 可能會用的著的刪除環(huán)境變量命令
unset OPENCV4NODEJS_DISABLE_AUTOBUILD
借助自動安裝腳本時,可以指定安裝的版本
export OPENCV4NODEJS_AUTOBUILD_OPENCV_VERSION=4.1.0
安裝腳本env.js中有個邏輯,在環(huán)境變量中查找OPENCV4NODEJS_AUTOBUILD_OPENCV_VERSION,如果找不到就安裝3.4.6,這里有個坑我設(shè)置了環(huán)境變量,當(dāng)使用npm i opencv4nodejs安裝時,找不到這個環(huán)境變量,無奈克隆了原倉庫,npm i結(jié)果正常
編譯報錯
error: unknown type name 'constexpr',在c++中出現(xiàn)該報錯一般是編譯使用的c++版本的問題,此時需要的是c++ 11,猜測是opencv4之前使用的編譯環(huán)境不同的原因,對c++了解不深,沒有繼續(xù)深究
克隆原倉庫并配置默認(rèn)安裝版本 安裝后,
opencv編譯通過,安裝成功
之后禁止自動安裝,再安裝
opecv4nodejs
在編譯
opencv4nodejs時可能會出現(xiàn)fatal error: 'opencv2/core.hpp' file not found
可以去/usr/local/include/或/usr/lib/include/目錄確認(rèn)一下是否有opencv的相關(guān)文件,并確認(rèn)版本是否對應(yīng)