Emscripten / NodeJS:默认情况下使实际文件系统可用
我想用Emscripten编译CLI应用程序,只使用本机文件系统层,以便应用程序可以执行它自己的测试套件。
我知道我可以在程序的EM_ASM
函数中使用适当的main()
语句在技术上做到这一点。但是,有没有办法告诉Emscripten默认情况下可以使用它?我已经看到了一个Github问题,它提出了-s NODERAWFS=1
,但它似乎没有用 - 或者至少,正如预期的那样。
据我所知,我会有这些选项使本机文件系统可用于该程序:
- 编辑
main()
有一个EM_ASM
语句,通过NODEFS
安装根。 - 添加一个前脚本,它执行上述操作但从原始程序中减去。
我需要根映射的原因是由于需要将路径传递给程序以允许程序找到它的测试套件。
关于如何使这项工作的任何想法?
回答如下:The source code (settings.js
)解释了-s NODERAWFS=1
emcc编译选项:
文件系统API将直接使用Node.js API,而不需要
FS.mount()
。初始工作目录与process.cwd()相同,而不是VFS根目录。
这听起来像你启用./
可能需要使用/
等相对路径而不是默认的根-s NODERAWFS=1
作为工作目录?
除此之外,settings.js
有关emcc选项的最佳描述,而不是官方文档。你可能想深入研究它。