【问题标题】:How to access .so library from nodejs application如何从 nodejs 应用程序访问 .so 库
【发布时间】:2017-06-05 07:13:10
【问题描述】:

我有一段 C 代码,它返回一个字符串输出。 同样的api打包成.so文件的形式。

如何在我的 nodejs 代码中直接使用 .so 文件。 我是否需要在我的 C 代码中添加一些东西,或者节点中是否有相同的标准机制..?

谢谢

【问题讨论】:

  • 不能把它放在答案中,因为我从来没有这样做过,但是 AFAIK 有两种方法:1.) 使用 c++ 编写自己的 node.js module 包装你的 c API - - 2.) 使用node-ffi 直接调用(运行时成本高)。
  • 嗨,Ashish,您能告诉我您是如何解决此问题的吗?我有类似的任务要完成。

标签: c node.js .so


【解决方案1】:

你不能。您可以做的是编写一个使用 so 库并返回输出的 C 可执行文件。您可以使用 exec 函数在您的 js 文件中调用它。

exec('/<path_to_executable>/executable',
  function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
    if (error !== null) {
      console.log('exec error: ' + error);
    }
});

【讨论】:

  • 应该可以,但是仅仅为了调用一个函数而分叉一个新进程似乎比使用node-ffi更昂贵
猜你喜欢
  • 2022-11-29
  • 2018-04-27
  • 2016-09-20
  • 2011-12-19
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-10
相关资源
最近更新 更多