我才刚开始研究基板,已经把我搞糊涂了:
需要注意的是,衬底运行时同时编译为本机Rust std二进制文件和WebAssembly (Wasm)二进制文件。有关编译std和no_std特性的详细信息,请参阅XXX。
这很好,我熟悉std和no_std。我的印象是,您要么已启用std并将其编译为本机Rust二进制文件,要么没有将其编译为WASM二进制文件。
但是,当我查看运行时的lib.rs时,我会发现以下内容:
#![cfg_attr(not(feature = "std"), no_std)]
// `construct_runtime!` does a lot of rec
我的目标是编写一个Kotlin库,将它编译成WebAssembly,然后从JS调用它的函数。由于几个小时,我试着得到一个简单的你好世界的工作。有关此主题的文档要么不存在,要么隐藏得很好。
这是我的kotlin档案:
@Used
public fun hello() {
println("Hello world!")
}
fun main(args: Array<String>) {
println("main() function executed!")
}
当我将它编译到WebAssembly时,我会得到一个hello.wasm和
这是我上一篇文章-> 的后续文章我现在正在尝试通过npm run deploy,然而,它似乎失败了,出现了以下问题。
//helper.testnet.near.org, file: ./out/main.wasm
An error occured
Error: ENOENT: no such file or directory, open './out/main.wasm'
at Object.openSync (fs.js:476:3)
at Object.readFileSync (fs.js:377:35)
at exports.deplo
我得到代码的错误"RuntimeError:在rustwasm中无法到达“
错误信息:
Uncaught (in promise) RuntimeError: unreachable
at __rust_start_panic (http://127.0.0.1:8080/wasm_bg.wasm:wasm-function[346]:0x274ec)
at rust_panic (http://127.0.0.1:8080/wasm_bg.wasm:wasm-function[254]:0x26d0b)
at std::panicking::rust_pani
对于这个C源代码:
int add(int a, int b) { return a + b; }
,Watcom C编译器用于8086 (wcc -s -ms -os -0 prog.c)生成以下机器代码(十六进制):01 D0 C3,分解为add ax, dx (01 D0) + ret (C3)。
对于此程序集源代码:
PUBLIC add_
EXTRN _small_code_:BYTE
_TEXT SEGMENT BYTE PUBLIC USE16 'CODE'
add_: add ax, dx
ret
_TEXT ENDS
END
,Watcom汇