【发布时间】:2018-09-25 22:24:50
【问题描述】:
我正在尝试将一些 c++ 代码编译成包含函数的 wasm 二进制文件。但是,即使我在编译过程中没有收到任何编译错误或任何其他警告,emscripten 生成的文件也不包含我用“-s EXPORTED_FUNCTIONS=['....']”导出的函数
这是我要导出的函数文件: https://pastebin.com/B5w1R4BC
这是我正在使用的编译命令:
em++ -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 \
-Igameoflife/include -Os -DNDEBUG \
-s EXPORTED_FUNCTIONS="['_GOL_Instance_new', '_GOL_Instance_destroy', '_GOL_Init', '_GOL_Step', '_GOL_get_values']" \
-o gol.js gameoflife/src/cellmap.cpp bridge.cpp
运行没有任何问题。
但是,当我将“gol.js”导入 javascript 时,Module 对象无法访问我尝试包含的任何函数(我正在等待模块在调用这些函数之前被初始化)。
TypeError: Module._GOL_Instance_new is not a function
为什么我无法通过 wasm 访问这些功能?
【问题讨论】:
标签: javascript html c++ emscripten jwasm