我想在我的WASM模块中导入共享内存,并试图链接我的对象文件,所有这些文件都是用-matomics和-mbulk-memory以及wasi-libc -lc、lc++和-lc++abi库编译的。但是得到了一个错误:
wasm:错误:-共享内存被errno.o不允许,因为它不是用“atomics”或“批量内存”特性编译的。
据我所知,wasm链接了一些libc对象文件,编译时没有上面的标志,所以不能链接它。如何将这些标志提供给链接器?或者需要使用这些标志从源构建wasi-libc?
发布于 2021-12-01 14:42:29
通过在链接时指定--no-check-features标志解决了问题。
发布于 2021-12-01 16:21:05
现在,wasi-libc不支持共享内存或多线程。如果您想要使某些东西正常工作,您至少需要用-pthread编译器标志重新编译核心库(libc、编译器-rt、libcxx、libcxxabi)。
如果你想在今天(2021年)用WebAssembly使用mutli线程,那么它使用emscripten和它的基于Worker的多线程方法是唯一合理的选择。
https://stackoverflow.com/questions/70180309
复制相似问题