上一篇文章介绍了javaScript如何调用简单的加法运算,该js的编译是采用cmd指令进行的,今天我为大家介绍如何使用QtCreator的WebAssembly套件编译成js、wasm,并且让javascript进行调用。
那么还是以简单的加法运行为例。
功能介绍
开发环境:win11 + Qt 6.8.2
1:创建一个简单项目
打开QtCreator开发工具,选择一个模块,按照下面的步骤进行操作
2:添加导出函数
因为只是导出一个简单的加法函数,直接在"main.cpp"中添加就可以了。
程序创建后未曾修改过的的"main.cpp"
添加"add"导出函数
#include <emscripten.h>
extern "C" EMSCRIPTEN_KEEPALIVE int add(int a, int b)
{
return a + b;
}
代码解析:将 add
函数以 C 语言的链接方式导出到 WebAssembly 模块中,并确保其不被编译器删除。
使用场景:当需要通过 JavaScript 调用 C++ 函数时(例如在 Qt Creator 编译的 WebAssembly 项目中),此代码为函数提供了跨语言调用的桥梁。
此时没有涉及到页面操作,所以去除了main函数里面的内容,对mian函数的修改,如下:
int main()
{
return 0;
} // 必须保留main函数
踩坑:在这里必须要保留main函数,否则生成的js胶水代码被html调用时在浏览器中会有callMain未定义的错误!!!
完整的main.cpp的代码,如下:
#include <emscripten.h>
extern "C" EMSCRIPTEN_KEEPALIVE int add(int a, int b) {
return a + b;
}
int main()
{
return 0;
} // 必须保留main函数
<