簡體   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