繁体   English   中英

Emscripten - 使用 MODULARIZE 选项编译时如何覆盖 locateFile

[英]Emscripten - How to override locateFile when compiled with MODULARIZE options

我使用 --preload-file 添加了一些文件到虚拟文件系统

我尝试使用以下方法更改数据文件位置:

MyModule['locateFile'] = function(path, prefix) {
  if (path.endsWith(".data")) return "resources/" + path
  return prefix + path
}

但是,如果我添加-s MODULARIZE=1 -s 'EXPORT_NAME="MyModule"' ,它就不起作用。

我尝试在此处解释的专用脚本中添加 locateFile function 。

我也尝试使用pre-jsextern-pre-js选项,但这也不起作用

我终于通过阅读常见问题解答settings.js文件找到了解决方案,特别是:

工厂 function 接受 1 个参数,即 object 和模块实例的默认值:

const module = await EXPORT_NAME({ option: value, ... });

所以我们可以像这样传递 function:

function locateFile(path, prefix) {
  if (path.endsWith(".data")) return "resources/" + path
  return prefix + path
}

MyModule({'locateFile' : locateFile}).then(...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM