2024年C C++最新探索 Node,程序员进阶

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

2. node-addon-api 简介

node-addon-api 是一个为 Node.js 编写的 C++ 插件提供的高级 C++ API。它提供了一组功能强大的工具,使得开发人员能够轻松地在 C++ 和 JavaScript 之间进行交互。

3. 安装和设置

3.1 安装 Node.js 和 npm:
# 安装 Node.js  
wget https://nodejs.org/dist/v16.14.2/node-v16.14.2-linux-x64.tar.xz  
tar xvf node-v16.14.2-linux-x64.tar.xz  
ln -s /path/to/node-v16.14.2-linux-x64/bin/* /usr/local/bin/  
  
# 验证安装  
node -v  
npm -v
3.2 创建新项目
mkdir my-node-addon  
cd my-node-addon
3.3 初始化项目
npm init -y
3.4 安装 node-addon-api:
node-gyp configure build
3.5 在 Node.js 中使用插件

编译完成后,你可以在 Node.js 中使用你的插件。以下是一个简单的示例:

// 根据实际情况调整路径。 
const addon = require('./build/Release/addon');
// 输出 2。注意,这只是一个简单的示例,实际情况可能会更复杂。你可能需要处理错误、进行类型检查等。
console.log(addon.add(1)); 

4. 编写 C++ 插件

4.1 创建 C++ 源文件

在 src 目录下创建一个新文件,例如 addon.cc

4.2 编写 C++ 代码

在 addon.cc 文件中,使用 node-addon-api 的 API 来编写你的 C++ 代码。例如:

#include <node_addon_api.h>  
  
napi_value Add(napi_env env, napi_callback_info info) {  
  size_t argc = 1;  
  napi_value args[1];  
  NAPI_CALL(env, napi_get_cb_info(env, info, &argc, args, nullptr, nullptr));  
    
  int32_t result = 0;  
  if (argc >= 1) {  
    NAPI_CALL(env, napi_get_value_int32(env, args[0], &result));  
  }  
  return napi_value_wrap_int32(env, result + 1); // 这里只是简单地将输入参数加一并返回。  
}
4.3 暴露 API

在 binding.gyp 文件中定义你的 API:

{  
  "targets": [  
    {  
      "target_name": "myaddon",  
      "sources": ["addon.cc"],  
      "include_dirs": ["<!(node -p \"require('node-addon-api').include\")"]  
    }  
  ]  
}

然后在 src 目录下创建一个 binding.gyp 文件,并将上面的代码复制到该文件中。这将告诉 node-gyp 如何编译你的插件。

4.4 编译插件

在项目根目录中运行以下命令:

node-gyp configure build --target=v16.14.2 --arch=x64 --build_type=Release --msvs_version=2019 --dist_summary=full --dist_summary_format=full --no-rebuild --force-process-config --force-clean --verbose --napi_version=4 --napi_build_version=0 --napi_nodejs_version=v16.14.2 --napi_build_type=Release --napi_build64=false --napi_legacy_base_node=false --napi_compiler=clang++ --napi_deployment_target=89 --napi_default_libraries=false --napi_multiversion=false --napi_parent_path=src --napi_buildroot=out --napi_libroot=out/Release/obj.target --napi_sharedlinkflags="" --napi_sharedlibs="" --napi_sharedlibsonlyflags="" --napi_sharedlibslinkflags="" --napi_sharedlibslibs="" --napi_nodejsroot="" --napi_distfile="" --napi_installroot="" --napi_nodejslibname="" --napi_build32=true --napi_build64=false --napi_nodejslib32=out/Release/obj.target/nodejs/defaultlib.target/src/nodejslib.node --napi_nodejslib64=out/Release/obj.target/nodejs/defaultlib.target/obj/defaultlib.o ""myaddon"" "--modulemap=out/Release/obj.target/nodejs/defaultlib.target/src/myaddon/myaddon.modulemap"" "--backendflags=--no-tsan"" "--backendflags=""" "--backendflags
4.5 测试和调试

使用 Node.js 运行你的插件。例如,创建一个名为 test.js 的文件,并编写以下代码:

const addon = require('./build/Release/myaddon');  
console.log(addon.add(2, 3)); // 调用你定义的 Add 函数,并传入两个参数 2 和 3

在项目根目录中运行以下命令:

node test.js

这将运行你的测试代码并输出结果。如果一切正常,你应该看到输出 5

5. 在 Node.js 中使用插件

5.1 引入插件

在你的 JavaScript 文件中,使用 require 函数来引入编译后的插件文件。例如:

const addon = require('./build/Release/myaddon');
5.2 调用 C++ 函数

使用引入的插件对象来调用你在 C++ 中定义的函数。例如:

const result = addon.add(1, 2);  
console.log(result); // 输出 3,这是 C++ 函数 Add 的返回值

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值