带有 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 图像的未定义导出符号的主要内容,如果未能解决你的问题,请参考以下文章
cv::imdecode 图像从 JS 到 C++ (opencv, emscripten)
Emscripten:我如何编译带有像 immintrin.h 这样的内在头文件的 c 文件?