Cross-compile GTK Linux-Windows

0

Witam

Chce skompilować aplikację dla systemu Windows w środowisku Linux - i powiem, że jeśli chodzi o proste aplikacje to nie ma z nimi żadnego problemu - chodzi mi tutaj o aplikacje konsolowe.

Teraz próbuję skompilować aplikacje bazującą na GTK - ale zaraz przy włączeniu mam błąd: Aplikacja nie została właściwie uruchomiona (0xc0000007b).

Kod źrodłowy:

#include <gtk/gtk.h> 

static void 
hello (GtkWidget * widget, gpointer data) 
{ 
  g_print ("Hello World!\n"); 
} 

static gboolean 
delete_event (GtkWidget * widget, GdkEvent * event, gpointer data) 
{ 
  g_print ("delete event occurred\n");
  return TRUE; 
} 

static void 
destroy (GtkWidget * widget, gpointer data) 
{ 
  gtk_main_quit (); 
} 
 
int 
main (int argc, char *argv[]) 
{ 
  GtkWidget *window; 
  GtkWidget *button; 

  gtk_init (&argc, &argv); 
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL); 

  g_signal_connect (G_OBJECT (window), "delete_event", 
                    G_CALLBACK (delete_event), NULL); 
  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL); 

  gtk_container_set_border_width (GTK_CONTAINER (window), 10); 
  button = gtk_button_new_with_label ("Hello World!"); 

  g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (hello), NULL); 
  g_signal_connect_swapped (G_OBJECT (button), "clicked", 
                            G_CALLBACK (gtk_widget_destroy), 
                            G_OBJECT (window)); 

  gtk_container_add (GTK_CONTAINER (window), button); 
  gtk_widget_show (button); 
  gtk_widget_show (window); 

  gtk_main (); 

  return 0; 
}

Biblioteki pobrałem stąd: http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip, zainstalowałem mingw (system Ubuntu). Potem ustawiam zmienną systemową:
export PKG_CONFIG_PATH=/opt/gtk-win32/lib/pkgconfig

I na końcu kompiluję (bez żadnego błędu):
i586-mingw32msvc-g++ main.c -o base.exe pkg-config --cflags --libs gtk+-2.0``

0

Strzelam :)
Nie do końca kompatybilne biblioteki, mimo że kompilujesz:

pkg-config --cflags --libs gtk+-2.0`

możesz mieć inną wersję pod linuksem niż tą zainstalowaną pod win, czyli 2.24.10

1 użytkowników online, w tym zalogowanych: 0, gości: 1