Rust 中编译出的可执行文件默认会显示控制台窗口(黑框),如何隐藏黑框
-
修改编译目标为 Windows 子系统 (GUI)
- 在
Cargo.toml中添加配置指定目标为 Windows GUI 应用:tomlCopy Code或直接通过 Rust 编译器参数指定:[package.metadata.windows_subsystem] windows = "windows"bashCopy Coderustc --crate-type bin --target x86_64-pc-windows-msvc -C link-args="/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup" src/main.rs ```:ml-citation{ref="1,2" data="citationList"}
- 在
-
使用
#![windows_subsystem = "windows"]属性- 在 Rust 源码文件顶部添加以下属性声明:
rustCopy Code这会强制编译器生成无控制台窗口的 GUI 应用2。
- 在 Rust 源码文件顶部添加以下属性声明:
-
通过链接器参数配置
- 若使用
cargo构建,可在.cargo/config.toml中配置链接器参数:tomlCopy Code[target.x86_64-pc-windows-msvc] rustflags = ["-C", "link-args=/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup"] ```:ml-citation{ref="1" data="citationList"}
- 若使用
对于需要调用外部程序(如通过
std::process::Command)的情况,建议额外设置进程创建标志为CREATE_NO_WINDOW(需调用 Windows API)以避免子进程弹出黑框3。若需进一步优化打包流程,可结合 PyInstaller 的--noconsole参数思路,通过构建脚本调整最终二进制文件的属性-
浙公网安备 33010602011771号