W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
為了減小 Rust 可執(zhí)行文件的大小,你可以配置 Cargo 項目以充分利用 Rust 的大小優(yōu)化功能。以下是一些推薦的選項,以便在構(gòu)建 Tauri 應(yīng)用程序時減小可執(zhí)行文件的大?。?/p>
[profile.release]
panic = "abort" # 去除昂貴的 panic 清理邏輯
codegen-units = 1 # 一個接一個地編譯 crate,以便編譯器能夠更好地進行優(yōu)化
lto = true # 啟用鏈接優(yōu)化
opt-level = "s" # 為二進制大小進行優(yōu)化
strip = true # 去除調(diào)試符號
上述選項的含義如下:
需要注意的是,也可以使用 opt-level = "z" 來減小生成的二進制文件的大小。"s" 和 "z" 有時會產(chǎn)生不同大小的文件,因此建議對你的應(yīng)用程序進行測試,以確定哪個選項效果更好。
另外,如果你的 Rust 項目使用了 Tauri 并且默認情況下啟用了資源壓縮功能,你也可以考慮禁用 Tauri 的資源壓縮來減小可執(zhí)行文件的大小。在 Cargo.toml 文件中,通過將 default-features 設(shè)置為 false 并指定除壓縮功能之外的所有功能,來禁用資源壓縮。例如:
[dependencies]
tauri = { version = "...", features = ["objc-exception", "wry"], default-features = false }
請注意,下面提到的一些方法涉及使用不穩(wěn)定的編譯器特性,并需要 Rust 的 nightly 版本。如果你使用的是 nightly 版本的 Rust,你可以嘗試以下操作來設(shè)置 nightly 工具鏈并添加 rust-src nightly 組件:
rustup toolchain install nightly
rustup component add rust-src --toolchain nightly
然后,你可以創(chuàng)建一個名為 rust-toolchain.toml 的文件,以告訴 Cargo 使用 nightly 工具鏈。文件內(nèi)容如下:
[toolchain]
channel = "nightly-2023-01-03" # 使用的 nightly 版本,你可以更新為最新版本
profile = "minimal"
最后,你可以使用以下命令來為 std 庫應(yīng)用優(yōu)化選項:
cargo tauri build --target <目標(biāo)三元組> -- -Z build-std
如果在發(fā)布配置的優(yōu)化中使用了 panic = "abort",你需要確保 panic_abort crate 使用了 std。此外,可以進一步減小二進制文件大小,如下所示:
cargo tauri build --target <目標(biāo)三元組> -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort
這些選項都涉及到使用不穩(wěn)定的編譯器特性,并需要 Rust 的 nightly 版本。請查閱不穩(wěn)定特性文檔以獲取更多關(guān)于 -Z build-std 和 -Z build-std-features 的詳細信息。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: