Emscripten / NodeJS: Сделать фактическую файловую систему доступной по умолчанию - PullRequest
0 голосов
/ 12 февраля 2019

Я хочу скомпилировать приложение CLI с Emscripten и просто использовать собственный уровень файловой системы, чтобы приложение могло выполнить собственный набор тестов.

Я знаю, что технически я мог бы сделать это с правильным EM_ASM оператор внутри функции main() программы.Тем не менее, есть ли способ сказать Emscripten сделать это доступным по умолчанию?Я видел проблему с Github, в которой предлагалось -s NODERAWFS=1, но она, похоже, не работает - или, по крайней мере, как ожидалось.

Насколько мне известно, у меня были бы такие варианты для создания нативногоФайловая система, доступная для программы:

  • Редактировать main(), чтобы получить оператор EM_ASM, который монтирует корень через NODEFS.
  • Добавить предварительный скрипт, который выполняет описанные выше действия.но вычтено из исходной программы.

Причина, по которой мне нужен сопоставленный корень, связана с необходимостью передачи пути к программе, чтобы позволить программе найти ее набор тестов.

Любая идея о том, как я мог бы сделать эту работу?

1 Ответ

0 голосов
/ 12 февраля 2019

Исходный код (settings.js) объясняет о -s NODERAWFS=1 параметре компиляции emcc:

API файловой системы будет напрямую использовать API Node.js, не требуя FS.mount(). Исходный рабочий каталог будет таким же, как process.cwd () вместо корневого каталога VFS.

Похоже, вам, вероятно, нужно использовать относительные пути, такие как ./ вместокорень по умолчанию / для вашего рабочего каталога, если вы включите -s NODERAWFS=1?

Кроме того, settings.js имеет лучшие описания параметров emcc, чем его официальная документация.Вы, вероятно, хотите копаться в этом.

...