《在window7下用法C++来给node.js编写扩展模块的方法_.docx》由会员分享,可在线阅读,更多相关《在window7下用法C++来给node.js编写扩展模块的方法_.docx(4页珍藏版)》请在三一文库上搜索。
1、在window7下用法C+来给node.js编写扩展模块的方法_ 在window7下用法C+来给node.js编写扩展模块的方法 本文给大家介绍的是在window7下用法C+来给node.js编写扩展模块的方法,附上一个简洁的hello实例,有需要的小伙伴可以参考下。 前提: 安装好node.js、Python2.7与visual studio 2021。 过程: 首先安装GYP项目生成工具,npm install -g node-gyp 。 建立test名目,这是我们的工作名目,在此名目下再建一个src名目,用来存放C+源代码,另新建一个名为binding.gyp的文本文件,这是gyp的项目
2、文件,内容如下: 代码如下: targets: target_name:hello, sources:src/hello.cc 再写一个简洁的hello.cc,内容如下: #include node.h using namespace v8; HandleValue Hello(const Arguments args) HandleScope scope; return scope.Close(String:New(Hello world!); void init(HandleObject target) NODE_SET_METHOD(target, hello, Hello); NODE
3、_MODULE(hello, init) 然后运行指令: node-gyp configure 假如正确运行的话,会消失一个名目-build,其下为你生成了vs2021的项目文件,这样就可以在vs2021中进行编辑与编译了。 当然也可以挺直用指令 node-gyp build进行编译。 测试js程序如下: 代码如下: var hello = require(./hello); console.log(hello.hello(); 其中遇到了一些问题,记录如下: 1、C:UsersAdministrator.node-gyp0.10.33这个名目下,没有默认Debug名目,在vs2021中编译成
4、debug文件时会提示 error LNK1104: cannot open file C:UsersAdministrator.node-gyp0.10.33Debugnode.lib ,建立一个Debug名目,把与你操作系统环境相同的名目下的node.lib拷贝到其中就好了。 2、NODE_MODULE(hello, init)中的hello是模块名,需要与文件名保持全都,不然编译没问题,运行时会出错。由于在require(./hello.node)时,既去找相应的文件,也匹配对应的MODULE。 3、我是对应着朴灵的深化浅出node.js这本书,并参考一些网页进行学习的,书给出的gyp项目文件中有一个conditions项,libraries : -lnode.lib ,由于这一句,编译时始终报错:cant open node.lib,明明文件是存在的,但就是报错,找了许多资料,也没解决,后来我把node.lib挺直拷贝到工作名目下,用指令行编译胜利了!但在vs2021中,错误还是照旧,我怎么想都不对,最终上官网,发觉人家的例子都没有给出这种参数,我就试着把这个东东删除了,结果一切OK!大神们,谁能给出一个正确的说明?! 以上所述上就是本文的全部内容了,盼望大家能够喜爱。 更多信息请查看IT技术专栏 .