#javascript #emscripten
#javascript #emscripten
Вопрос:
У меня есть библиотека C, у которой нет зависимостей, кроме libmath. Я хотел бы перенести его в модуль JavaScript с помощью Emscripten, который можно было бы использовать практически в любой среде выполнения JavaScript любым из обычных способов:
const myModule = require('myModule'); // In Node.js
import { MyClass } from 'myModule'; // Webpack, etc.
… Или даже просто включить с помощью <script>
тегов в браузере. Но документы Emscripten, похоже, очень сосредоточены на main
функции. Я просто хотел бы перенести эту библиотеку на JavaScript, чтобы пользователи моего API могли писать свои собственные сценарии на JavaScript и использовать мой API, как если бы он никогда не был написан ни на каком языке, кроме JavaScript. Возможно ли это?
Ответ №1:
Да, вам не нужна main
функция, вы можете указать, какие функции экспортировать с помощью EXPORTED_FUNCTIONS
настройки. Но обратите внимание, что Emscripten теперь компилируется в WebAssembly по умолчанию, что означает, что его запуск является асинхронным. Для того, чтобы вы могли использовать только require
этот модуль, как и любой другой пакет Node, вам потребуется asm.js вместо этого выводите. Возможно, установка WASM=0
параметра для Emscripten будет работать, в противном случае может потребоваться какой-либо другой процесс.