首页 > 解决方案 > Emscripten/NodeJS:使实际的文件系统默认可用

问题描述

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

我知道从技术上讲,我可以EM_ASM通过程序main()功能中的适当语句来做到这一点。但是,有没有办法告诉 Emscripten 在默认情况下使其可用?我看到了一个 Github 问题,它提出了建议-s NODERAWFS=1,但它似乎不起作用——或者至少,正如预期的那样。

据我所知,我可以使用以下选项使本机文件系统对程序可用:

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

关于如何使这项工作的任何想法?

标签: cnode.jsemscripten

解决方案


源代码 ( settings.js)解释了-s NODERAWFS=1emcc 编译选项:

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

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

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


推荐阅读