Strumenti Utente

Strumenti Sito


programmazione:d:gid:crosscompilare_per_windows

D Lang - crosscompilare applicazione Gtk4 per windows

Autore: Fabio Di Matteo
Ultima revisione: 16/07/2025 10:30

Serve avere installato Wine con il compilatore dmd e avere il bundle gtk4-runtime (ricavato con msys2 con lo script Uno script per creare un bundle per il nostro eseguibile)

Preparativi

Sulla macchina con linux dove lavoriamo impartiamo il comando

dub init myapp gid:gtk4

Creerà il progetto e installerà (compilerà) le dipendenze necessarie in fase di compilazione .

Incollare un hello world gtk4 scritto in D sul file source/app.d Hello world in gtk4 e linguaggio D usando Gid.

compilare il progetto con dub impartendo il comando

wine dub build 

Abbiamo creato così il nostro esebuibile, ma per distribuirlo servirà metterlo in una cartella assieme al bundle gtk4, sullo stesso livello degli altri file.

dub.json

{
	"authors": [
		"fabio"
	],
	"copyright": "Copyright © 2025, fabio",
	"dependencies": {
		"gid:gtk4": "~>0.9.7"
	},
	"description": "A minimal D application.",
	"license": "MIT",
	"name": "gtk4-win",
	"targetType":"executable",
	"targetPath": "./build",
 
	 "lflags":[
   		"-subsystem:windows",
   		"-entry:mainCRTStartup"
		]
}

le direttive :

...
"lflags":[
   		"-subsystem:windows",
   		"-entry:mainCRTStartup"
		]
...

fanno in modo che non si apre la finestra della console di windows. Puo' essere utile disattivarle in fase di debug.

Potremmo abilitarle anche solo su windows:

"lflags-windows-x86_64":[
   		"-subsystem:windows",
   		"-entry:mainCRTStartup"
		]

la funzione main

Devo dire a windows che uso il subsystem per le applicazioni grafiche attraverso l'entrypoint del WinMain. Hello world in gtk4 e linguaggio D usando Gid

programmazione/d/gid/crosscompilare_per_windows.txt · Ultima modifica: 21/09/2025 21:06 da Fabio Di Matteo