如何在 Clang 中使用 WebAssembly 引用类型

How to use WebAssembly Reference Types with Clang

我正在使用 Clang 和 LLD 在 C 中编写 WebAssembly 应用程序。

如何编写将 externref 作为参数的 C 函数以及如何从 JavaScript 调用此函数?如何使用 C 中的 externref 值调用在 JavaScript 中定义的导入函数?

目前这是不可能的,尽管 clang 和 LLVM 正在努力使其成为可能。目前你能得到的最接近的是在汇编中编写你的函数。这是一个示例,尽管您必须查看其他相关的测试文件(或 clang -cS 输出)才能弄清楚如何导出函数等。不幸的是,这种汇编格式在 WebAssembly 的中心位置没有得到很好的记录。

https://github.com/llvm/llvm-project/blob/79aad89d8d29029b4e937137e6b8619ee8a4b691/lld/test/wasm/externref.s