Emscripten / NodeJS:默认情况下使实际文件系统可用

时间:2019-02-12 13:19:05

标签: c node.js emscripten

我想用Emscripten编译一个CLI应用程序,而只是利用本机文件系统层,以便该应用程序可以执行它自己的测试套件。

我知道我可以在程序的EM_ASM函数中使用正确的main()语句来做到这一点。但是,有没有办法告诉Emscripten默认使它可用?我见过一个建议-s NODERAWFS=1的Github问题,但它似乎不起作用-至少没有达到预期的效果。

据我所知,我将拥有那些使本机文件系统可用于程序的选项:

  • 编辑main()以具有EM_ASM语句,该语句通过NODEFS挂载根。
  • 添加执行上述操作但从原始程序中减去的脚本。

之所以需要根映射,是因为需要向程序传递路径以允许程序找到它的测试对象。<​​/ p>

对我如何进行这项工作有任何想法吗?

1 个答案:

答案 0 :(得分:1)

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

  

文件系统API将直接使用Node.js API,而无需使用FS.mount()初始工作目录将与process.cwd()相同,而不是VFS根目录。

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

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