1.cmake编辑opencv的源代码路径(带有makelist的目录),生成opencv相关lib文件.configure两次后,点击生成(cmake中选择安装的以依赖库,如果缺少相应的依赖库,就算成功生成了的OpenCV功能也会有问题的,建议的NuGet下载)

       configure失败,可以看看上面的参数,手动修改参数后继续configure

       generate失败,可以修改*.cmake文件重新编译

       cmakelist.txt文件中url包含(根据findpackage指定的/module/cmake文件下载对应的版本),外部文件的地址

  

    编译x64版本

2.添加opencv包括目录到项目进行vc开发,如果要在nodejs中使用opencv,在编译构建完项目后出现如图项目:

编译运行vc10,生成bin文件夹和lib文件。不过nodejs中使用的目录结构是opencv bin安装包的目录结构,所以通过cmake编译出来的vc项目默认是有调和发布目录的,需要根据nodejs opencv源码readme.md中的描述,设置相应的环境变量和目录结构,nodejs opencv使用了bin和lib目录,node-gyp编译的js源码中可以看到相应的环境变量和目录结构检测代码。

opencv地址:https://github.com/opencv/opencv.git

编译选项中勾选build_docs,可以生成doxyfile,通过命令doxygen doxyfile可生成帮助文档(doxygen可以通过pacman下载,doxyfile的路径d:/需要修改为/d/即可完成文档编译)

3.node-gyp编译opencv过程中,出现如下WindowsSDKDir不存在错误,需要下载windows kit 8.1版本解决,并且路径环境变量中添加cl路径,保证cl能单独运行(鼠标双击无错误提示,可能需要在VS \\ common7 \ IDE目录下拷贝mspdb100.dll,mspdbcore.dll,mspdbsrv.exe文件),重启nodejs控制台。

     如果出现STDDEF.H找不到,说明VC环境变量未添加,需要运行VC环境下的vcvarsall.bat,在使用NPM安装

     如果node-gyp目录中的build.js错误,需要配置环境变量GYP_MSVS_VERSION = 2010 或者当前vs版本

如果以上配置还不行,单独测试node-gyp configure build C ++ demo,如下地址:

http://www.cnblogs.com/yupeng/p/3469444.html

http://wiki.jikexueyuan.com/project/nodejs/addons.html

https://github.com/nodejs/node-addon-examples

node-gyp configure显示编译C ++的配置node- gyp 最终生成* .node 二进制文件,供nodejs调用

npm init为项目创建package.json(项目依赖配置)

最终在窗户上还是编译错误:

在C盘全局节点配置中node-gyp中查到,node- gyp 使用的3.6.1的版本中的v8.h和node.h使用的VS2015或者更高的版本,而我用的VS2010,只支持C ++ 11标准,对于C ++ 14和17都不支持,CL编译起有差别导致编译错误解决办法:下载的NodeJS开源代码的老本本支持VS2010的,节点-GYP构建vcproject后,手动添加的NodeJS包括生成节点文件。

安装纯净版的nodejs:http://www.cnblogs.com/SCOOL/p/4054045.html(下载npm源码:node cli.js install npm -gf手动安装npm)

4.nodejs下的opencv(windows下需要先单独安装opencv (nodejs调用vc opencv库),cmake和使用tbb第三方框架编译,有的opencv需要单独下载tbb)

      nodejs参考:http://www.runoob.com/nodejs/nodejs-npm.html

      npm安装查询数据库工具   

      npm config | npm config ls查看配置npm config set key value

      npm ls查看目录结构npm list -g查看安装的包npm list模块名

      NPM-GYP源码编译的C ++扩展(蟒还有GYP和scons的构建项目)

                       node-gyp configure错误:http://blog.csdn.net/lengyoumo/article/details/72235131

 

      npm update更新当前项目或着指定模块

      npm init在当前生成pakage.json文件

      npm-pre-gyp二进制包C ++扩展

      npm-install -g grunt-node-inspector简单配置

      npm-install --production安装错误报告(json> =改成〜)

      npm install -d(--save-dev) -s(--save)

      nodejs-opencv需要安装c ++版本的opecv在目录build下配置环境变量OPENCV_DIR并添加路径路径%OPENCV_DIR \ bin%

      nodejs淘宝镜像安装:( - g全局安装(node_module下的npm目录npmrc配置前缀和缓存),否则本地安装,下载文件到cmd启动目录)

        node_module中大部分源码都有typescript定义

        nodejs项目和网页js不同,nodejs不包含navigator等对象

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

         项目依赖安装:npm install(安装到本地-g安装到nodejs目录下代码中要求只能查找到npm install的模块)

         项目运行:node index.js运行js程

         项目调试: node inspect  index.js调试

5.常用的npm模块有(npm是nodejs包管理器,npm独立网站)

         npm可以方便的发布自己的模块,使用开源的模块,由于模块众多,vscode开发的使用的时候install后,可以方便的查看module源码,了解其功能。

模块名作者简介
asynccaolan异步操作管理
blrvagg二进制数据解析
bluebirdpetkaantonov异步操作管理
browserifysubstack发布浏览器可用的包
bunyantrentm日志(logging)管理
chaijakeluer断言
chalksindresorhus命令行彩色输出
cotjholowaychuk异步流程管理
colorsmarak命令行彩色输出
commandertjholowaychuk命令行工具
debugtjholowaychukDebug输出器
dockerodeapocasDocker管理
duplexifymafintoshStream流操作工具
event-streamdominictarrStream流操作工具
expresstjholowaychukServer服务器框架
globisaacs文件名匹配
gruntcowboy构建工具
gulpcontra构建工具
hapihueniverseServer服务器框架
hyperquestsubstack轻量级HTTP客户端
istanbulgotwarlost测试用例覆盖率分析
JSONStreamdominictarrStream流管理工具
koatjholowaychukServer服务器框架
leveluprvaggLevelDB
lodashjdalton函数式编程工具
log4jsnomiddlename日志(logging)管理工具
minimatchisaacs文件名匹配
minimistsubstack命令行操作
mochatjholowaychuk单元测试
momenttimrwood日期时间输出
mongodbchristkvMongoDB
mysqlfelixgeMySQL
nconfindexzero配置工具
needletomas轻量级HTTP客户端
node-fetchbitinnFetch API
nodemailerandris9Email客户端
passportjaredhanson登录和认证
pgbriancPostgres
pumpmafintoshStream流管理工具
redismjrRedis
requestmikealHTTP客户端
restifymcavageREST API搭建
socket.iorauchgWebSocket实时通信
split2matteo.collinaStream流管理工具
tapesubstack单元测试
through2rvaggStream流管理工具
underscorejashkenas函数式编程工具
wseinarosWebsockets
xml2jsleonidasXML转换为JavaScript

更多推荐