程序使用RUST加slint实现,但是使用cargo build --release生成的exe在运行时,会先出现一个cmd窗口,然后再弹出gui界面,请问各位配置什么选项可以消除这个cmd的窗口,直接开始gui
2条回答 默认 最新
关注 下午好🌅🌅🌅
本答案参考ChatGPT-3.5要在Rust中生成没有cmd窗口的GUI程序,你可以按照以下步骤进行配置:
-
添加
windows
属性到Cargo.toml
文件中:[package] # ... [package.metadata.windows] subsystem = "windows"
-
修改
main.rs
文件,将main
函数的返回类型修改为Result<(), Box<dyn Error>>
:use std::error::Error; fn main() -> Result<(), Box<dyn Error>> { // ... Ok(()) }
-
当使用
cargo build --release
命令构建程序时,使用winres
库来设置Windows特定的资源文件。首先,将以下内容添加到Cargo.toml
文件中的[build-dependencies]
部分:[build-dependencies] winres = "0.1"
-
创建一个
build.rs
文件,并添加以下内容:use std::env; use std::path::PathBuf; use winres::WindowsResource; fn main() { let out_dir = &PathBuf::from(env::var("OUT_DIR").expect("Failed to get OUT_DIR env")); WindowsResource::new() .set_icon("path/to/your/icon.ico") // 替换为你的图标文件路径 .set("ProductName", "Your Product Name") .set("OriginalFilename", "your_program_name.exe") // 替换为你的程序名称 .compile().expect("Failed to compile windows resource"); let dest_path = out_dir.join("resource.rc"); std::fs::copy(dest_path, "resource.rc").expect("Failed to copy resource.rc"); }
将
"path/to/your/icon.ico"
替换为你自己的图标文件路径,并将"Your Product Name"
和"your_program_name.exe"
替换为你自己的产品名称和程序名称。 -
执行
cargo build --release
命令来构建程序,在生成的可执行文件所在的目录中,你将找到一个resource.rc
文件。 -
打开命令提示符或PowerShell窗口,导航到生成的可执行文件所在的目录,并运行以下命令来编译资源文件:
windres resource.rc -O coff -o resource.res
-
Run it! 要运行程序,只需双击可执行文件即可,你将不再看到cmd窗口,而只会看到GUI界面。
注意: 确保在执行
cargo build --release
命令之前,你已经安装了winres
库运行所需的工具链,可以通过运行以下命令来安装:cargo install winres
解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么