位置: 编程技术 - 正文
推荐整理分享使用C++为node.js写扩展模块(c调用nodejs),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:c++ node,c++ node,c调用nodejs,c++ node.js,node.js:来一打 c++ 扩展,c++ node,c++ node.js,c++node类型,内容如对您有帮助,希望把文章链接给更多的朋友!
前提: 安装好node.js、Python2.7与visual studio 。
过程:首先安装GYP项目生成工具,npm install -g node-gyp 。建立test目录,这是我们的工作目录,在此目录下再建一个src目录,用来存放C++源代码,另新建一个名为binding.gyp的文本文件,这是gyp的项目文件,内容如下:
再写一个简单的hello.cc,内容如下:
然后运行命令: node-gyp configure如果正确运行的话,会出现一个目录----build,其下为你生成了vs的项目文件,这样就可以在vs中进行编辑与编译了。当然也可以直接用命令 node-gyp build进行编译。
测试js程序如下:
其中遇到了一些问题,记录如下:
1、C:UsersAdministrator.node-gyp..这个目录下,没有默认Debug目录,在vs中编译成debug文件时会提示 error LNK: cannot open file 'C:UsersAdministrator.node-gyp..Debugnode.lib' ,建立一个Debug目录,把与你操作系统环境相同的目录下的node.lib拷贝到其中就好了。
2、NODE_MODULE(hello, init)中的hello是模块名,需要与文件名保持一致,不然编译没问题,运行时会出错。因为在require('./hello.node')时,既去找相应的文件,也匹配对应的MODULE。
3、我是对应着朴灵的《深入浅出node.js》这本书,并参考一些网页进行学习的,书给出的gyp项目文件中有一个conditions项,'libraries' : ['-lnode.lib'] ,因为这一句,编译时一直报错:can't open node.lib,明明文件是存在的,但就是报错,找了很多资料,也没解决,后来我把node.lib直接拷贝到工作目录下,用命令行编译成功了!但在vs中,错误还是依旧,我怎么想都不对,最后上官网,发现人家的例子都没有给出这种参数,我就试着把这个东东删除了,结果一切OK!大神们,谁能给出一个正确的解释?!
以上所述上就是本文的全部内容了,希望大家能够喜欢。
node.js操作mongodb学习小结 一、准备工作1、在mongodb创建将要读取的表创建数据库mongotestusemongotest;向user表中插入数据db.user.insert({name:'flyoung',age:'',sex:true});2、安装node-mongodb-nativenp
Node.js实现Excel转JSON 一直在做一个关于网上选课的系统,选用了时下比较流行的node.js。今天在想怎么把学生或者老师的信息导入进去,涉及数量比较多一点,我手边又正好
Node.js和MongoDB实现简单日志分析系统 在最近的项目中,为了便于分析把项目的日志都存成了JSON格式。之前日志直接存在了文件中,而MongoDB适时闯入了我的视线,于是就把log存进了MongoDB中
标签: c调用nodejs
本文链接地址:https://www.jiuchutong.com/biancheng/378003.html 转载请保留说明!友情链接: 武汉网站建设