Indice
Sviluppare applicazioni Gtk-rs su Windows
Autore: Fabio Di Matteo
Ultima revisione: 13/04/2026 13:40
Alcuni appunti su come sviluppare applicazioni con Gtk-rs(4 in questo caso) su windows.
Usando gli strumenti di sviluppo di Microsoft
Come prima cosa installiamo :
- scarichiamo un bundle binario , compilato con msvc da questo indirizzo: Gvsbuild
Estraiamo in c:\gtk il contenuto del bundle. Le cartelle bin,lib etc devono stare subito sotto c:\gtk. E' già così ma stiamoci attenti. Ora dobbiamo impostare i comandi e le librerie in path per gtk. Apriamo una finestra powershell e digitiamo i seguenti comandi:
$env:Path = "C:\gtk\bin;" + $env:Path $env:LIB = "C:\gtk\lib;" + $env:LIB $env:INCLUDE = "C:\gtk\include;C:\gtk\include\cairo;C:\gtk\include\glib-2.0;C:\gtk\include\gobject-introspection-1.0;C:\gtk\lib\glib-2.0\include;" + $env:INCLUDE
Adesso proviamo a compilare un piccolo hello world:
use gtk::prelude::*; use gtk::{Application, ApplicationWindow, glib}; use gtk4 as gtk; fn main() -> glib::ExitCode { let app = Application::builder() .application_id("org.example.HelloWorld") .build(); app.connect_activate(|app| { // We create the main window. let window = ApplicationWindow::builder() .application(app) .default_width(320) .default_height(200) .title("Hello, World!") .build(); // Show the window. window.present(); }); app.run() }
Aggiungiamo le dipendenze per gtk-rs con il seguente comando:
cargo add gtk4 --rename gtk --features v4_12
Compiliamo il programma da powershell con:
cargo run
Evitare che sia apra la finestra della console quando lanciamo il nostro eseguibile
Basta aggiungere in cima al nostro main.rs la seguente macro:
#![windows_subsystem = "windows"]
Distribuire il programma
Ho messo l'eseguibile in una carlella con tutti i file .dll della cartella c:\gtk\bin\. Probabilmente è possibile fare qualcosa di piu' pulito.
