【问题标题】:Can Emscripten be used to port a C library to a plain old JavaScript module?可以使用 Emscripten 将 C 库移植到普通的旧 JavaScript 模块吗?
【发布时间】:2020-09-04 09:44:14
【问题描述】:

我有一个 C 库,除了 libmath 之外没有其他依赖项。我想使用 Emscripten 将其转换为 JavaScript 模块,它可以以任何正常方式在几乎任何 JavaScript 执行环境中使用:

const myModule = require('myModule'); // In Node.js
import { MyClass } from 'myModule'; // Webpack, etc.

...甚至只是在浏览器中使用<script> 标签。但是 Emscripten 文档似乎非常关注具有 main 函数。我只是想将这个库移植到 JavaScript,以便我的 API 的使用者可以用 JavaScript 编写他们自己的脚本并使用我的 API,就好像它从未用除 JavaScript 之外的任何语言编写过一样。这可能吗?

【问题讨论】:

    标签: javascript emscripten


    【解决方案1】:

    是的,您不需要main 函数,您可以使用EXPORTED_FUNCTIONS 设置指定要导出的函数。但请注意,Emscripten 现在默认编译为 WebAssembly,这意味着启动它是异步的。为了让您能够像任何其他 Node 包一样只使用 require 模块,您需要 asm.js 输出。可能为 Emscripten 设置 WASM=0 设置会起作用,否则可能需要一些其他过程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      相关资源
      最近更新 更多