构建以下rust文件将生成一个720KB的二进制文件。
我期待一个几乎空的构建,我在这里错过了什么?是否包含了完整的核心库?
下面是代码
#![no_std]
#[panic_handler]
fn handle_panic(_: &core::panic::PanicInfo) -> ! {
unreachable!()
}
和cargo.toml
[package]
name = "wasm_test"
version = "0.0.0"
edition = "2021"
[lib]
crate-type = ["cdylib"]
[profile.release]
opt-level = 's'
lto = true
和我用来构建的命令:
cargo build --target wasm32-unknown-unknown
原来我有两个问题:
- 我在工作空间中将其构建为crate,这显然忽略了crate特定的配置文件
- 当我复制板条箱出来乱用它并隔离问题时,我忘记添加
--release
标志,感谢@isaactfa。
在其他情况下,我收到了这个警告。
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
由于某些原因,我在构建工作空间时没有得到它。
我已经将板条箱添加到工作空间exclude
列表中,并单独构建它,并将其编译为更合适的411字节.