[英]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.