[英]Is there a way to use sqrt when using clang and web assembly target
我正在使用 clang --target=wasm32 --no-standard-libraries 将 c++ 编译为 web 程序集。 有没有办法说服 clang 生成 sqrt? 它没有找到具有此目标的 <math.h> 。
您是否已经尝试在没有标志--no-standard-libraries
情况下进行编译? 如果删除它,clang 可能会找到math.h
库(因为它是标准库)。
这是因为wasm32-unknown-unknown
是 Clang 中的完全准系统目标,并且没有任何标准库 - 即没有math.h
,没有 I/O 函数,甚至没有memcpy
。
但是,您通常可以使用--target wasm32-wasi
+ WASI SDK 代替: https://github.com/WebAssembly/wasi-sdk
它包括整个标准库,甚至包括在兼容环境中通过WASI 标准与文件系统交互的函数。
如果您的代码不依赖于文件系统/时钟/其他 I/O,那么您可以安全地使用 WASI-SDK 获取math.h
、 memcpy
、 malloc
和其他标准函数,并且生成的 WebAssembly 将兼容任何非WASI 环境也是如此。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.