返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >使用C++为node.js写扩展模块
  • 835
分享到

使用C++为node.js写扩展模块

模块nodejs 2022-06-04 17:06:04 835人浏览 泡泡鱼
摘要

前提: 安装好node.js、python2.7与visual studio 2013。 过程: 首先安装GYP项目生成工具,npm install -g node-gyp 。 建立test目录,这是我们的

前提: 安装好node.jspython2.7与visual studio 2013。

过程:
首先安装GYP项目生成工具,npm install -g node-gyp 。
建立test目录,这是我们的工作目录,在此目录下再建一个src目录,用来存放c++源代码,另新建一个名为binding.gyp的文本文件,这是gyp的项目文件,内容如下:

{

    'targets':[{

        'target_name':'hello',

        'sources':['src/hello.cc']

    }]

}

再写一个简单的hello.cc,内容如下:


#include <node.h>
using namespace v8;

Handle<Value> Hello(const Arguments& args) {
 HandleScope scope;
 return scope.Close(String::New("Hello world!"));
}

void init(Handle<Object> target) {
 NODE_SET_METHOD(target, "hello", Hello);
}

NODE_MODULE(hello, init)

然后运行命令: node-gyp configure
如果正确运行的话,会出现一个目录----build,其下为你生成了vs2013的项目文件,这样就可以在vs2013中进行编辑与编译了。
当然也可以直接用命令 node-gyp build进行编译。

测试js程序如下:

var hello = require('./hello');

console.log(hello.hello());

其中遇到了一些问题,记录如下:

1、C:UsersAdministrator.node-gyp.10.33这个目录下,没有默认Debug目录,在vs2013中编译成debug文件时会提示 error LNK1104: cannot open file 'C:UsersAdministrator.node-gyp.10.33Debugnode.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直接拷贝到工作目录下,用命令行编译成功了!但在vs2013中,错误还是依旧,我怎么想都不对,最后上官网,发现人家的例子都没有给出这种参数,我就试着把这个东东删除了,结果一切OK!大神们,谁能给出一个正确的解释?!

以上所述上就是本文的全部内容了,希望大家能够喜欢。

--结束END--

本文标题: 使用C++为node.js写扩展模块

本文链接: https://lsjlt.com/news/12259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用C++为node.js写扩展模块
    前提: 安装好node.js、Python2.7与visual studio 2013。 过程: 首先安装GYP项目生成工具,npm install -g node-gyp 。 建立test目录,这是我们的...
    99+
    2022-06-04
    模块 node js
  • 为 Python 写一个 C++ 扩展模块
    使用 C 扩展为 Python 提供特定功能。在前一篇文章中,我介绍了 ​​六个 Python 解释器​​。在大多数系统上,CPython 是默认的解释器,而且根据民意调查显示,它还是最流行的解释器。Cpython 的独有功能是使用扩展 A...
    99+
    2023-05-14
    Python 模块 C++
  • 怎么为Python写一个C++扩展模块
    今天小编给大家分享一下怎么为Python写一个C++扩展模块的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。源代码和往常一样,...
    99+
    2023-07-06
  • 如何认识Node.js扩展模块Hashish
    这期内容当中小编将会给大家带来有关如何认识Node.js扩展模块Hashish,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。向您介绍Node.js扩展模块&mda...
    99+
    2024-04-02
  • 如何使用C/C++编写node.js原生模块
    这篇文章主要为大家展示了“如何使用C/C++编写node.js原生模块”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用C/C++编写node.js原生模块...
    99+
    2024-04-02
  • 怎么使用C/C++编写node.js原生模块
    这篇文章主要讲解了“怎么使用C/C++编写node.js原生模块”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用C/C++编写node.js原生模块”吧!Hello World不能免俗...
    99+
    2023-06-17
  • 使用Node.js为其他程序编写扩展的基本方法
    准备开始 首先我们用下面的目录结构来创建一个节点通知(node-notify)文件夹. . |-- build/ # This is where our...
    99+
    2022-06-04
    程序 方法 Node
  • 怎么用C++编写node.js原生模块
    本篇内容主要讲解“怎么用C++编写node.js原生模块”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C++编写node.js原生模块”吧!Hello World不能免俗,第一个先上来写个...
    99+
    2023-07-04
  • 如何使用Cython为Python编写更快的C扩展
    本篇文章为大家展示了如何使用Cython为Python编写更快的C扩展,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在我们这个包含了 7 个 PyPI 库的系列文章中学习解决常见的 Python 问...
    99+
    2023-06-16
  • Python 扩展使用 C/C++ 给
    本文来自作者 gashero 在 GitChat 上分享「Python 的 C 扩展开发惯例」,「阅读原文」查看交流实录 「文末高能」 编辑 | 嘉仔 目录 1   简介    1.1   Python扩展模块的用途和优点 ...
    99+
    2023-01-31
    Python
  • 利用C/C++编写node.js原生模块的方法教程
    前言 一直想了解一下使用C/C++编写nodejs原生模块,从网上找到的博客,大多都停留在如何搭建环境,然后一个Hello World完事。连更多的参考资料也没有。于是就自己整理了一下,分享于此。 至于准备...
    99+
    2022-06-04
    模块 方法 教程
  • 解析 C++ 为游戏可扩展性和模块化带来的益处
    c++++为游戏开发提供了可扩展性和模块化支持。通过模板、继承和泛型编程,可扩展性得以实现,允许轻松添加新功能。而命名空间、头文件和dll则支持模块化,便于隔离功能,独立修改。这使得游戏...
    99+
    2024-05-24
    c++ 游戏开发
  • 用C/C++来实现 Node.js 的模块(一)
     N久之前的一个坑——用 Node.js 来重构 NBUT 的 Online Judge,包括评测端也得重构一遍。(至于什么时候完成大家就不要关心了,(/Д′)/~   总之我们现在要做的其实简而言之就是...
    99+
    2022-06-04
    来实现 模块 Node
  • 用C/C++来实现 Node.js 的模块(二)
    温故而知新,可以为湿矣   首先请大家记住这个 V8 的在线手册——http://izs.me/v8-docs/main.html。   还记得上次的 building.gyp 文件吗? { "ta...
    99+
    2022-06-04
    来实现 模块 Node
  • Node.js模块Modules如何使用
    本篇内容介绍了“Node.js模块Modules如何使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!模块模块就是一个声明了装饰器@Modu...
    99+
    2023-07-06
  • 利用扩展模块优化 PHP 函数执行
    扩展模块可优化 php 函数执行,方法如下:创建 c++/c++ 函数实现耗时操作。使用 php 扩展框架创建扩展模块,将 c/c++ 函数封装成 php 函数。在 php 脚本中加载扩...
    99+
    2024-04-12
    php 函数优化 c++
  • Node.js中如何使用DNS模块
    Node.js中如何使用DNS模块,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1. DNS在Node.js中,提供DNS模块,以实现域名...
    99+
    2024-04-02
  • Node.js 中domain模块如何使用
    这篇文章给大家介绍Node.js 中domain模块如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。异步异常处理异步异常的特点由于node的回调异步特性,无法通过try catc...
    99+
    2024-04-02
  • Node.js中如何使用Cluster模块
    Node.js中如何使用Cluster模块,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.为什么我的应用代码中明明有app....
    99+
    2024-04-02
  • Node.js中如何使用util模块
    本篇文章为大家展示了Node.js中如何使用util模块,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。util.inheritsuitl.inherits(cons...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作