从JavaScript

时间:2017-03-01 12:47:12

标签: javascript c angularjs node.js jsctypes

我有一个带有一些API的自定义C共享库(.so lib)。我想从AngularJS(或JS)调用这些API。我的约束是我不应该使用任何其他编译器重新编译共享库代码,而是直接使用.so文件。鉴于这样做的选择有限,我尝试使用一些并计划使用其他一些,但没有一个是令人满意的,即,它们需要使用自己的编译器重新编译我的共享lib代码。我的UI应用程序是Chrome应用程序。

  1. Emscripten工作但需要使用emcc编译器编译我的.so lib。因此没用。
  2. 使用Google PNaCl,这也需要使用自己的SDK编译我的.so lib。
  3. 使用Node js并使用node-gyp直接从.so lib调用C API。
  4. 使用js-ctypes并尝试直接从JS代码调用C API。
  5. 我知道前两个对我不起作用。对于第三个和第四个,我不确定它们是否可以使用自己的编译器或SDK重新编译库代码。 如果有可能或有其他方法可以,请您分享一些您的专业知识吗?

1 个答案:

答案 0 :(得分:0)

使用node-ffi库解决了这个问题。我们可以使用node-ffi从共享库中调用C API。