RedGrittyBrick
RedGrittyBrick

Reputation: 4002

Rust Installation on Windows for developing GUI apps

TL:DR;

Can I write GUI programs on Win 10 (64) using Rust without installing the full MinGW toolchain (nor the MS equivalent)?

Supplementary questions:

- If not, should I just go ahead and install MinGW?

- Does anything GNUish in Windows 10 Anniversary Update change any of this?


Longer version

I saw that Rust is the most loved programming language hereabouts so 15 minutes ago...

I read

No additional software installation is necessary for basic use of the GNU build.

Rust's support for the GNU ABI is more mature, and is recommended for typical uses.

So I downloaded Windows (GNU ABI †) (.msi) 64-bit to my PC running Windows 10.

TUI

I read some basic intro and used rustc to compile a Hello World! and ran it OK. I then read about cargo and reorganised buit and ran the same code using that.

GUI

I then searched for Rust GUI and found Kiss_UI

a simple UI tookit for Rust

So I did a cargo new Hello_GUI --bin and added

[dependencies.kiss-ui]
git = "https://github.com/cybergeek94/kiss-ui"

to Cargo.toml

I cut and pasted a simple example from that website into main.rs

I then ran cargo run --verbose. It did

   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

...

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

So I learned two things

I have no complaints about either of these points but could use a clue or two about the second:

Assuming I want to write a GUI equivalent of Hello World in a simple way, what are my main options now?

Upvotes: 3

Views: 2871

Answers (1)

James Gilles
James Gilles

Reputation: 694

According to its documentation, kiss-UI depends on the IUP library.

The error from gcc (can't find -liup) suggests that you don't have IUP installed. You may be able to install it and have things work; it depends on whether the IUP bindings used by kiss-UI can cope with windows.

Some other GUI libraries can be found at awesome-rust. There are bindings to libraries like Qt and Gtk. If you know the windows API, you could also check out the winapi crate.

If you want to avoid messing with linking and stuff, you could try using a pure rust library like conrod, which should 'just work' on windows.

To answer your more broad questions:

See the footnote on the downloads page. The MSVC version of rust depends on MSVC being installed. The GNU/MinGW build is standalone.

Upvotes: 7

Related Questions