Windows上的Rust安装,用于开发GUI应用程序

Red*_*ick 1 windows user-interface rust

TL:DR;

是否可以在不安装完整的MinGW工具链(也不与MS等效)的情况下使用Rust在Win 10(64)上编写GUI程序?

补充问题:

-如果没有,我应该继续安装MinGW吗?

-Windows 10周年更新中的 GNUish有什么改变吗?


较长的版本

15分钟前,我看到 Rust是最受欢迎的编程语言。

读了

基本使用GNU构建不需要额外的软件安装。

Rust对GNU ABI的支持更加成熟,推荐用于典型用途。

所以我下载Windows (GNU ABI †) (.msi) 64-bit到运行Windows 10的PC。

UI

我读了一些基本的介绍,并用来rustc编译Hello World!并运行正常。然后,我阅读cargo并重组了buit并使用该代码运行了相同的代码。

图形用户界面

然后我搜索Rust GUI并找到Kiss_UI

Rust的一个简单UI界面

所以我做了一个cargo new Hello_GUI --bin并添加了

[dependencies.kiss-ui]
git = "https://github.com/cybergeek94/kiss-ui"
Run Code Online (Sandbox Code Playgroud)

到Cargo.toml

我从该网站剪切了一个简单的示例并将其粘贴到main.rs中

然后我跑了cargo run --verbose。它做了

   Updating git repository `https://github.com/cybergeek94/kiss-ui`
    Updating registry `https://github.com/rust-lang/crates.io-index`
 Downloading iup-sys v0.0.3
 Downloading libc v0.2.14
 Downloading libc v0.1.12
   Compiling libc v0.1.12
Run Code Online (Sandbox Code Playgroud)

...

warning: crate `Hello_GUI` should have a snake case name such as `hello_gui`, #[warn(non_snake_case)] on by default
error: linking with `gcc` failed: exit code: 1
note: "gcc" "-Wl,--enable-long-section-names" ...
note: ld: cannot find -liup
error: aborting due to previous error
Run Code Online (Sandbox Code Playgroud)

所以我学到了两件事

  • 我需要用蛇皮套。

  • GUI编程不是“基本用途”。

我对以上两点均无怨言,但可以就第二点使用一两个线索:

假设我想以一种简单的方式编写等效于Hello World的GUI,那么我现在的主要选择是什么?

Jam*_*les 5

根据其文档,kiss-UI取决于IUP库

gcccan't find -liup)中的错误表明您未安装IUP。您也许可以安装它并使事情正常进行;这取决于Kiss-UI使用IUP绑定是否可以应对Windows。

awesome-rust可以找到其他一些GUI库。有绑定到Qt和Gtk之类的库。如果您知道Windows API,也可以签出winapi crate

如果您想避免混乱的链接和东西,您可以尝试使用像conrod这样的纯锈库,它应该在Windows上“正常工作”。

要回答您更广泛的问题:

请参阅下载页面上的脚注。rust的MSVC版本取决于所安装的MSVC。GNU / MinGW构建是独立的。