Kompilieren und ausführen von GTK+ - Anwendung auf Windows 7
System: Windows7, 32 bit, GTK 2.24.10, mingw
Ich bin versucht, zu schreiben basic "helloworld".c-Typ GTK-basierte Anwendung. Es wird jedoch nicht ausgeführt.
Dies sind die Schritte, die ich folgte.
- Installieren Sie MinGW.
- Download GTK+ - all in one bundle.
- Extrahieren von Inhalten in C:\gtk Ordner.
- Öffnen Sie cmd ein und gehen Sie zu C:\gtk\bin Verzeichnis und ausführen von pkg-config --cflags --libs gtk+-win32-2.0
- Es druckt Liste der compilation-flags und Bibliotheken verknüpfen Sie Ihr
Projekt zu.
Kopieren Sie Sie und erstellen Sie eine Stapeldatei wie folgt vor.
set VAR=FLAGS
start cmd
wo VAR = GTK, und der FLAGGEN = die Ausgabe des vorherigen Befehls (pkg-config).
Wenn Sie möchten, kompilieren Sie die Datei verwenden Sie den Befehl : gcc foo.c %VAR%
D:\gtk>gcc -o Projekt "helloworld".c %GTK%
gcc: %GTK%: Keine solche Datei oder Verzeichnis
"helloworld".c:1:21: Fehler: gtk/gtk.h: No such file or directory
"helloworld".c: In function 'main':
"helloworld".c:5: Fehler: "GtkWidget" schwarzarbeit (erste Benutzung in dieser Funktion)
"helloworld".c:5: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal berichtet
"helloworld".c:5: Fehler: für jede Funktion erscheint in.)
"helloworld".c:5: Fehler: "window" schwarzarbeit (erste Benutzung in dieser Funktion)
"helloworld".c:9: Fehler: "GTK_WINDOW_TOPLEVEL" schwarzarbeit (erste Benutzung in dieser Funktion)
D:\gtk>gcc -Wall -g helloworld.c -o helloworld pkg-config --cflags gtk+-2.0 pkg-config --libs gtk+-2.0
gcc: pkg-config: No such file or directory
gcc: gtk+-2.0: No such file or directory
gcc: pkg-config: No such file or directory
gcc: gtk+-2.0: No such file or directory
cc1.exe: error: unrecognized command line option "-fcflags"
cc1.exe: error: unrecognized command line option "-flibs"
batch-Datei in D:\gtk
set GTK=-mms-bitfields -IC:/gtk/include/gtk-2.0 -IC:/gtk/lib/gtk-2.0/include -IC:/gtk/include/atk-1.0 -IC:/gtk/include/cairo -IC:/gtk/include/gdk-pixbuf-2.0 -IC:/gtk/include/pango-1.0 -IC:/gtk/include/glib-2.0 -IC:/gtk/lib/glib-2.0/include -IC:/gtk/include -IC:/gtk/include/freetype2 -IC:/gtk/include/libpng14 -LC:/gtk/lib -lgtk-win32-2.0 -lgdk-win32-2.0 -latk-1.0 -lgio-2.0 -lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lglib-2.0 -lintl
start cmd
helloworld.c
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
GtkWidget *window;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return 0;
}
Referenz : Die Installation von gtk und die Kompilierung mit gcc unter windows?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie versuchen, diese manuellen Schritte zu beginnen mit:
1) Auf Ihre Eingabeaufforderung ausführen von pkg-config-Befehl, um Ihre beinhalten flags:
c:\dev\gtk224\bin\pkg-config.exe --cflags gtk+-2.0
Dies ist meine Ausgabe:
2) stellen Sie die Ausgabe aus (1) einer variable GTK_INCLUDES:
(stellen Sie sicher, dass Sie IHREN Ausgang von Schritt (1))
3) das gleiche tun wie Schritt 1 für die Bibliothek flags:
c:\dev\gtk224\bin\pkg-config.exe --libs gtk+-2.0
Dies ist meine Ausgabe:
4) Ausgabe von (3) auf eine variable GTK_LIBS
(stellen Sie sicher, dass Sie IHREN Ausgang von Schritt (3))
5) stellen Sie sicher, dass gtk+ und MinGW sind auf dem Weg:
(stellen Sie sicher, dass Sie Ihren Weg zu IHREM mingw und gtk-Verzeichnisse)
6) kompilieren:
7) wenn Sie sind in der Lage zu kompilieren, OK, das zu kopieren, was du getan hast in Schritten 2,4,5 und 6, um eine batch-Datei, so können Sie kompilieren Sie die app einfach durch ausführen der batch-Datei.
SET
Befehl speichert nur den Wert im Speicher für die aktuelle Sitzung (I. e. der Befehl Fenster, das Sie ausführenSET
in). Andere Befehl windows wird nicht sehen den Wert, der festgelegt wurde (es sei denn, der andere Befehl windows sind Kinder). Haben Sie führen Sie den Befehl PS aus der gleichen DOS-Fenster (oder von einem Kind), die Sie ausführenSET
in?Der Fehler ist hier richtig.
pkg-config
ist ein Dienstprogramm, das hilft (und ich empfehle), um zu bestimmen, link und lib-flags. Das Problem ist, dass gcc interpretiert es als parameter übergeben Sie Ihnen, wie Sie - Sie müssen exectue Sie in einer subshell (aber ich habe keine Ahnung, wie zu tun, die unter windows-shell oder cygwin) unter bash ist es entweder$(pkconfig --libs gtk-2.0)
oder mit backticks um statt$(...)
Bekommen gleiche Fehler beim ausführen der Hallo Welt Programm. Folgende Lösung funktioniert für mich.
Anstatt zu sparen, Ihr
helloworld.c
an jeder beliebigen Stelle, legte es inMinGW > msys > 1.0 > home > "Name des Ordners" > "helloworld".c
Öffnen Sie nun
msys.bat
und schreiben Sie den Befehl Programm ausführen. In meinem Fall war es:Und es funktioniert für mich!