Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

1

05.11.2013, 16:50

GTK+ in eclipse compilieren (Linux)

Moin,

ich bekomme es nicht hin GTK+ Anwendungen in eclipse unter ubuntu zu compilieren.
Vielleicht könnt ihr mir ja helfen.

Erstmal der "Hallo Welt" Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include <gtk/gtk.h>

int main(int argc, char** args){
    gtk_init(&argc, &args);

    GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_widget_show(window);
    gtk_main();

    return 0;
}


Die Ausgabe:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
16:38:26 **** Build of configuration Debug for project GTK+ ****
make all 
Building target: GTK+
Invoking: GCC C++ Linker
g++  -o "GTK+"  ./main.o   
./main.o: In Funktion `main':
/home/marvin/Schreibtisch/Projekte/GTK+/Debug/../main.cpp:4: Nicht definierter Verweis auf `gtk_init'
/home/marvin/Schreibtisch/Projekte/GTK+/Debug/../main.cpp:6: Nicht definierter Verweis auf `gtk_window_new'
/home/marvin/Schreibtisch/Projekte/GTK+/Debug/../main.cpp:8: Nicht definierter Verweis auf `gtk_widget_show'
/home/marvin/Schreibtisch/Projekte/GTK+/Debug/../main.cpp:9: Nicht definierter Verweis auf `gtk_main'
collect2: error: ld returned 1 exit status
make: *** [GTK+] Fehler 1

16:38:26 Build Finished (took 222ms)


Die Einstellung (versuche gerade erstmal mit GTK 2, hätte aber lieber GTK 3):

Quellcode

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



(Link)


Mit make Dateien kenne ich mich leider nicht so richtig aus, aber eigentlich sollte eclipse das so hinbekommen.
Was mich wundert ist dass in der Ausgabe das pkg-config nicht steht, obwohl ich es oben eingebe. Sicherheitshalber steht beim gcc übrigens das gleiche.

Ansonsten baue ich meine Oberflächen mit glade, ich interessiere mich eigentlich nicht für den Code (später xml laden), aber compilieren sollte er trotzdem :)

Ich hoffe ihr könnt mir helfen.

Tobiking

1x Rätselkönig

  • Private Nachricht senden

2

05.11.2013, 18:43

Hast du das "pkg-config --cflags --libs gtk+-2.0" mal so im Terminal eingegeben und geschaut ob es geht? Wenn du eine Distribution verwendest, die auf GTK 3 setzt, ist GTK 2 nicht zwangsläufig auf dem System vorhanden.

Wenn du aber eh GTK 3 verwenden möchtest, warum tust du das dann nicht? Ich fand die offiziellen Tutorials eigentlich immer ganz brauchbar für den Einstieg: https://developer.gnome.org/gtk3/3.0/gtk…ng-started.html

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

3

06.11.2013, 16:01

Ja das funktioniert, auch mit der aktuellen Version.

Ich kenne mich wohl nicht gut genug mit eclipse aus, aber jetzt von Hand zu compilieren wäre doch etwas... nervig.

DeKugelschieber

Community-Fossil

  • »DeKugelschieber« ist der Autor dieses Themas

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

4

06.11.2013, 17:05

Hmm er bekommt es hin die .o Datei zu erstellen, aber linken klappt wohl irgendwie nicht. Ich habe das `pkg-config --cflags gtk+-3.0` mal hinten und vorne angefügt.

Ausgabe ist dann:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
17:02:25 **** Incremental Build of configuration Debug for project GTK ****
make all 
Building file: ../main.cpp
Invoking: GCC C++ Compiler
g++ `pkg-config --cflags gtk+-3.0` -I/usr/include/gtk-3.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/lib/x86_64-linux-gnu/gtk-3.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gdk-pixbuf-2.0 -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o "main.o" "../main.cpp" `pkg-config --cflags gtk+-3.0`
Finished building: ../main.cpp
 
Building target: GTK
Invoking: GCC C++ Linker
g++ `pkg-config --cflags gtk+-3.0`  -o "GTK"  ./main.o    `pkg-config --cflags gtk+-3.0`
./main.o: In Funktion `main':
/home/marvin/Schreibtisch/Projekte/GTK/Debug/../main.cpp:4: Nicht definierter Verweis auf `gtk_init'
/home/marvin/Schreibtisch/Projekte/GTK/Debug/../main.cpp:6: Nicht definierter Verweis auf `gtk_window_new'
/home/marvin/Schreibtisch/Projekte/GTK/Debug/../main.cpp:8: Nicht definierter Verweis auf `gtk_widget_show'
/home/marvin/Schreibtisch/Projekte/GTK/Debug/../main.cpp:9: Nicht definierter Verweis auf `gtk_main'
collect2: error: ld returned 1 exit status
make: *** [GTK] Fehler 1

17:02:26 Build Finished (took 526ms)


Also drin stehts, sieht an sich auch aus wie der gcc Aufruf im Terminal, aber läuft nicht...

Edit:

Oh man ok, hinten muss natürlich --libs stehen


Wen es interessiert:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
#include <gtk/gtk.h>

int main(int argc, char** args){
    gtk_init(&argc, &args);

    GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    gtk_widget_show(window);
    gtk_main();

    return 0;
}


Bei den Properties -> C/C++ Build -> Settings:

Quellcode

1
2
`pkg-config --cflags gtk+-3.0` // a
`pkg-config --libs gtk+-3.0` // b


a bei Command rein, b ganz hinten bei Command line pattern (für beide Compiler + Linker).

Libs für den parser stehen oben (das Bild).

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »DeKugelschieber« (06.11.2013, 17:12)


Werbeanzeige