网页
综合
更新时间 2026-11-14 12:26:10
小程序WXWebAssembly能力调用c++编译的wasm文件-菜鸟编程-鸟儿博客
自动蜘蛛
www.birdol.com
正文约 1143 字
先吐槽:微信官方基本等于没有文档:https://developers.weixin.qq.com/miniprogram/dev/framework/performance/wasm.html
没有范例,搜索到的内容也很有限,还有些文档过期了。还有些不知道是在胡说八道还是我没看懂,反正测试无效。
这里可以参照:https://developer.mozilla.org/zh-CN/docs/WebAssembly/C_to_wasm 但不要全信。上下文有助于理解WASM是个啥。
安装Git https://git-scm.com/download/win安装Cmake https://cmake.org/download/ 安装Python https://www.python.org/downloads/
PS:我没看到哪里用到了python,后续使用的时候都是直接用emcc这个指令。至于git,可有可无,国内环境建议用githubdesktop,这样下载文件更完整。git clone命令行有时候下载失败或者下载不完整。
找个没有中文的路径,我这里是E:\盘根目录,创建文件夹emsdk。然后把emsdk的内容下载进去。
没有验证过是否都需要设置,至少需要第一个。不然emcc找不到路径。
这里可以参照https://developers.weixin.qq.com/community/develop/article/doc/000ea84136c8103d40bfb02865b813 但不要全信。上下文有助于理解微信的WASM是个啥。
cmd进入当前文件夹,输入以下命令进行编译,会得到一个demo.wasm
如果你不想使用EXPORTED_FUNCTIONS导出函数,也可以在函数名的上一行加上EMSCRIPTEN_KEEPALIVE标记。
如果使用后一种方法,注意c文件的头部加上
1、仅限于这条指令,具体原因可能是某个编译指令不一样会导致调用失败。所以不想折腾就用这个。
2、请保持文件名的扩展名为.c,如果使用.cpp会有不可预知的问题。
1、不需要什么胶水js以及修改胶水js,不需要奇怪的引用。按照这个方法可以最简单的进行调用。复杂的。。。不知道,以后再说。
2、目前唯一缺点,没有找到合适的技术链工具,只能在VSCode中调试编译,再到emcc命令下编译生成wasm。由于二者有些环境变量似乎不一致,导致互相报错的内容不完全相同。
目前解决方案是尽量再VSCode中代码简化,调试通过后再梳理成emcc能接受的内容(比如头文件),或者分段进行调试编译验证。
转载请注明:鸟儿博客 » 小程序WXWebAssembly能力调用c++编译的wasm文件
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。