前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >opencv cmake编译 && nodejs

opencv cmake编译 && nodejs

作者头像
sofu456
发布2019-07-09 14:03:46
2.5K0
发布2019-07-09 14:03:46
举报
文章被收录于专栏:sofu456

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源码中可以看到相应的环境变量和目录结构检测代码。

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等对象

代码语言:javascript
复制
$ npm install -g cnpm --registry=https://registry.npm.taobao.org

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

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

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

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

模块名

作者

简介

async

caolan

异步操作管理

bl

rvagg

二进制数据解析

bluebird

petkaantonov

异步操作管理

browserify

substack

发布浏览器可用的包

bunyan

trentm

日志(logging)管理

chai

jakeluer

断言

chalk

sindresorhus

命令行彩色输出

co

tjholowaychuk

异步流程管理

colors

marak

命令行彩色输出

commander

tjholowaychuk

命令行工具

debug

tjholowaychuk

Debug输出器

dockerode

apocas

Docker管理

duplexify

mafintosh

Stream流操作工具

event-stream

dominictarr

Stream流操作工具

express

tjholowaychuk

Server服务器框架

glob

isaacs

文件名匹配

grunt

cowboy

构建工具

gulp

contra

构建工具

hapi

hueniverse

Server服务器框架

hyperquest

substack

轻量级HTTP客户端

istanbul

gotwarlost

测试用例覆盖率分析

JSONStream

dominictarr

Stream流管理工具

koa

tjholowaychuk

Server服务器框架

levelup

rvagg

LevelDB

lodash

jdalton

函数式编程工具

log4js

nomiddlename

日志(logging)管理工具

minimatch

isaacs

文件名匹配

minimist

substack

命令行操作

mocha

tjholowaychuk

单元测试

moment

timrwood

日期时间输出

mongodb

christkv

MongoDB

mysql

felixge

MySQL

nconf

indexzero

配置工具

needle

tomas

轻量级HTTP客户端

node-fetch

bitinn

Fetch API

nodemailer

andris9

Email客户端

passport

jaredhanson

登录和认证

pg

brianc

Postgres

pump

mafintosh

Stream流管理工具

redis

mjr

Redis

request

mikeal

HTTP客户端

restify

mcavage

REST API搭建

socket.io

rauchg

WebSocket实时通信

split2

matteo.collina

Stream流管理工具

tape

substack

单元测试

through2

rvagg

Stream流管理工具

underscore

jashkenas

函数式编程工具

ws

einaros

Websockets

xml2js

leonidas

XML转换为JavaScript

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年05月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档