带有 emscripten docker 图像的未定义导出符号

Posted

技术标签:

【中文标题】带有 emscripten docker 图像的未定义导出符号【英文标题】:Undefined exported symbol with emscripten docker image 【发布时间】:2021-10-02 17:06:06 【问题描述】:

我错过了什么?

[ad@tank prolly]$ cat wam.c
int wam()  return 2; 

[ad@tank prolly]$ /usr/bin/docker run --rm -v $(pwd):/src emscripten/emsdk emcc --no-entry -s EXPORTED_FUNCTIONS=wam wam.c
emcc: error: undefined exported symbol: "wam" [-Wundefined] [-Werror]

我正在执行 EXPORTED_FUNCTIONS 位,因为 javascript 也找不到该符号。浏览器控制台说:

Uncaught (in promise) TypeError: instance.exports.wam is not a function

之后:

  <script type="module">
    async function init() 
      const  instance  = await WebAssembly.instantiateStreaming( fetch("./wam.wasm"));
      instance.exports.wam();
    
    init();
  </script>


【问题讨论】:

【参考方案1】:

已排序。您必须输入-s EXPORTED_FUNCTIONS=_wam(带下划线),否则它不会导出它。希望还有一个--export-all,但它不被称为。然后instance.exports.wam(); 就可以了;

【讨论】:

以上是关于带有 emscripten docker 图像的未定义导出符号的主要内容,如果未能解决你的问题,请参考以下文章