c - Emscripten/NodeJS : Make the actual file-system available by default

标签 c node.js emscripten

我想使用 Emscripten 编译 CLI 应用程序,并仅利用 native 文件系统层,以便应用程序可以执行它自己的测试套件。

我知道从技术上讲,我可以在程序的 main() 函数中使用适当的 EM_ASM 语句来完成此操作。但是,有没有办法告诉 Emscripten 默认情况下可用?我看到一个 Github 问题建议 -s NODERAWFS=1,但它似乎不起作用 - 或者至少没有达到预期。

据我所知,我可以使用这些选项来使 native 文件系统可供程序使用:

  • 编辑 main() 以使用 EM_ASM 语句通过 NODEFS 挂载根。
  • 添加一个预脚本来执行上述操作,但从原始程序中减去。

我需要映射的根的原因是需要将路径传递给程序以允许程序找到它的测试套件。

知道我如何才能完成这项工作吗?

最佳答案

The source code (settings.js)解释 -s NODERAWFS=1 emcc 编译选项:

The File System API will directly use Node.js API without requiring FS.mount(). The initial working directory will be same as process.cwd() instead of VFS root directory.

这听起来像如果您启用 -s NODERAWFS= ,您可能需要使用 ./ 等相对路径,而不是工作目录的默认根 / 1

除此之外,settings.js 比其官方文档对 emcc 选项有最好的描述。您可能想深入研究它。

关于c - Emscripten/NodeJS : Make the actual file-system available by default,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54651006/

相关文章:

C Programming w/Pipes 奇怪地打印到 STDOUT

c - 交替使用 & 和 * 来取消引用?

gcc - 如何在 Emscripten 中设置 gcc 标志

c++ - 没有 SDL 的 Emscripten

javascript - WebAssembly 函数大时速度慢吗?

c - fclose() 之后管道 "closing"

c - 需要帮助理解 C 中的特定定义指令

javascript - MongoDB:如何填充嵌入式引用

node.js - 在nodejs中回调内部回调?

javascript - jQuery $(this) 在 nodejs 模块上是 "undefined"(使用 Browserify)