Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Gtkmm mit CodeBlocks IDE zum laufen bringen

Empfohlene Antworten

Veröffentlicht

Hallo Leute,

ich muss mich nun mal Hilfesuchend an euch wenden. Ich versuche die GTKmm unter Code::Blocks zum laufen zu bringen aber ich scheitere daran. Ich habe meine Frage schon im C++ Forum gestellt, aber wirklich helfen konnte mir da auch niemand.

Hier der Link zu dem Thema C/C++ Forum :: gtkmm unter code::blocks zum laufen bringen , da wisst ihr was man mir schon als Tipp geschrieben hat, aber meine Versuche darauf sind fehlgeschlagen.

Ich habe Gtk+ und Gtkmm installiert und wollte nun die includes und libs meiner Code::Blocks IDE bekannt machen um die Gtkmm benutzen zu können. Nur weis ich nicht wo ich das wie machen soll. Ich habe mir also eine Konsolenanwendung Projekt angelegt und dann unter dem Menüpunkt Project auf den Menüpunkt Buil Options gegangen. Und dort hört es dann auf. Im Thread von C++ Forum könnt ihr lesen wo ich das versucht habe.

Könnt ihr mir bei dem Problem vieleicht weiter helfen?

Vielen Dank für eure Zeit und Mühe. Gruß lit-web

  • Autor

Hallo,

also ich habe das genau nach der Beschreibung da probiert, aber es kommt immer noch ne Meldung das die gtkmm.h nicht gefunden wird.


#include <iostream>

#include <gtkmm.h>


using namespace std;


int main()

{

    cout << "Hello world!" << endl;

    return 0;

}


Noch jemand ne Idee?

Gruß lit-web

Noch jemand ne Idee?
Ja. Einfach mal nachsehen, ob die Datei da ist, wo du sie vermutest.

Ich bin mir ziemlich sicher, dass gtkmm.h nicht in C:\GTK\include steckt, sondern in C:\GTK\include\gtkmm-2.4 oder einem ähnlichen Unterordner.

Du wirst diesen (und vermutlich auch alle anderen) Unterordner von C:\GTK\Include auch in den Projekteinstellungen eintragen müssen.

  • Autor

Ich habe nachgesehen du hattest Recht.

Aber nun bin ich vollkommen von der Rolle und weis nicht wo ich nun noch was wie rein schreiben bzw. eintragen soll. Im Netz finde ich auch keine wirkliche Hilfe trotz weiterer intensiver Suche.

In den Build Options wählst du links den obersten Knoten im Baum aus (der heißt wie dein Projekt). Nicht Debug oder Release, weil du das für beide ändern willst.

Unter Search Directories fügst du dann bei Compiler C:\GTK\include und alle Unterordner hinzu.

Bei Linker machst du dasselbe mit C:\GTK\lib und allen Unterordnern.

  • Autor

Genau wie du es geschrieben hast, habe ich das nun auch gemacht.

Pfad bei Compiler C:\GTK\include\glibmm-2.4\

Pfad bei Linker C:\GTK\lib\glibmm-2.4\include\

Das sind auch die Pfade wie ich sie verfolgen konnte.

Beim ersten Pfad findet man dann die glibmm.h

Beim zweiten Pfad findet man die glibmmconfig.h

So nun probiere ich folgenden code aus.


#include <iostream>

#include <gtkmm.h>


using namespace std;


int main(int argc, char* argv[])

{

    Gtk::Main kit(argc, argv);

	Gtk::Window window;


	Gtk::Main::run(window);

    return 0;

}

Jedoch bekomme ich ne Menge Fehlermeldungen.

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|2|gtkmm.h: No such file or directory|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp||In function `int main(int, char**)':|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|8|error: `Gtk' has not been declared|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|8|error: `Main' was not declared in this scope|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|8|error: expected `;' before "kit"|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|9|error: `Gtk' has not been declared|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|9|error: `Window' was not declared in this scope|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|9|error: expected `;' before "window"|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|11|error: `Gtk' has not been declared|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|11|error: `window' was not declared in this scope|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|11|error: `run' was not declared in this scope|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|8|warning: unused variable 'Main'|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|9|warning: unused variable 'Window'|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|11|warning: unused variable 'window'|

C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\gtk_test\main.cpp|11|warning: unused variable 'run'|

||=== Build finished: 10 errors, 4 warnings ===|

Ich weis da nun momentan nicht mehr weiter.

Danke für eure Zeit und Hilfe lit-web

Genau wie du es geschrieben hast, habe ich das nun auch gemacht.
Nein, hast du nicht.

Beim ersten Pfad findet man dann die glibmm.h
Was willst du mit glibmm.h? Du suchst doch gtkmm.h.

Ich hatte gesagt, du sollst GTK\include und alle Unterverzeichnisse hinzufügen.

  • Autor
Nein, hast du nicht.

Was willst du mit glibmm.h? Du suchst doch gtkmm.h.

Ich hatte gesagt, du sollst GTK\include und alle Unterverzeichnisse hinzufügen.

Stimmt ich hatte das falsche hinzugefügt.

Nun kommen keine Fehlermeldungen mehr vom Compiler her aber folgendes kleines Fenster geht beim start auf.

You must select a host application to "run" a library...

Was das übersetzt heist weis ich aber wo ich da wie was ändern oder einstellen muss weis ich leider nicht.

  • Autor
Dann hast du wohl statt eines Konsolenanwendungsprojekts ein Library-Projekt erstellt. Ich weiß nicht, ob du das nachträglich ändern kannst.

Ich abe wenn ich in CodeBlocks nen Projekt anlege ganz oben rechts das ausgewählt und das ist ja eine Konsolenanwendung, oder gibts da noch etwas anderes sodas ich eventuell das falsche ausgewählt habe?

  • 2 Wochen später...
  • Autor

Guten Abend,

ich bekomme glaub bald nen Rappel, ich bekomme das einfach nicht hin.

Also noch mal ich lege mir ein neues Project an (eine console application), dass ist bei Code::Blocks ganz rechts oben die Schaltfläche wenn ich ein Project anlegen will.

So ist das geschehen dann mache ich die Einstellungen wie mir gesagt wurde.

1.) Ich öffne unter Project dann Build Options und wähle links ganz oben den Baumpunkt der den gleichen Namen hat wie mein Project.

2.) Ich wähle dann den Registerreiter Search Directories

3.) Ich wähle aus dem Unterregister den Reiter Compiler drücke da auf Add, das was da drin steht an Pfad (Pfad zum Project) lösche ich raus und schreibe da folgendes rein C:\GTK\include\gtkmm-2.4\

4.) Dann wähle ich im Unterregister den Reiter Linker und drücke auch da wieder Add, lösche den vorhandenen Pfad (wieder Pfad zum Project) raus und schreibe rein C:\GTK\lib\glibmm-2.4\include\

Bei drittens liegt im Verzeichnis gtkmm-2.4 die Header Datei gtkmm.h

Bei viertens liegt imVerzeichnis include die Datei glibmmconfig.h

So in den Header Dateien sind ein haufen andere Header Dateien gelistet.

Jedoch funktioniert bei mir wenn ich den Beispielcode aufrufe bzw. mit dem Beispielcode versuche zu compilieren, dann hagelt es wieder ne riesen Menge Fehlermeldungen.

Könnt ihr vieleicht noch mal helfen? Vielen Dank Gruß lit-web

EDIT:

Hier die ganze Reihe Fehlermeldungen


Compiling: main.cpp

In file included from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm.h:29:20: glibmm.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm.h:30:19: giomm.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm.h:31:19: gdkmm.h: No such file or directory

In file included from C:/GTK/include/gtkmm-2.4/gtkmm.h:33,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/object.h:28:27: glibmm/object.h: No such file or directory

In file included from C:/GTK/include/gtkmm-2.4/gtkmm/object.h:29,

                 from C:/GTK/include/gtkmm-2.4/gtkmm.h:33,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/base.h:26:28: glibmm/utility.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/base.h:27:28: glibmm/ustring.h: No such file or directory

In file included from C:/GTK/include/gtkmm-2.4/gtkmm/object.h:29,

                 from C:/GTK/include/gtkmm-2.4/gtkmm.h:33,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/base.h:31: error: `Glib' has not been declared

C:/GTK/include/gtkmm-2.4/gtkmm/base.h:31: error: expected nested-name-specifier before "unconst"

C:/GTK/include/gtkmm-2.4/gtkmm/base.h:31: error: `unconst' has not been declared

In file included from C:/GTK/include/gtkmm-2.4/gtkmm.h:33,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/object.h:30:25: gtkmmconfig.h: No such file or directory

In file included from C:/GTK/include/gtkmm-2.4/gtkmm.h:33,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/object.h:72: error: invalid function declaration

In file included from C:/GTK/include/gtkmm-2.4/gtkmm/dialog.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/aboutdialog.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm.h:34,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/window.h:31:31: glibmm/listhandle.h: No such file or directory

In file included from C:/GTK/include/gtkmm-2.4/gtkmm/container.h:29,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/bin.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/window.h:32,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/dialog.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/aboutdialog.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm.h:34,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:29:29: pangomm/context.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:30:28: pangomm/layout.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:37:25: gdkmm/event.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:38:25: gdkmm/types.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:39:26: gdkmm/window.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:40:31: gdkmm/dragcontext.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:41:26: gdkmm/pixbuf.h: No such file or directory

C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:42:26: gdkmm/screen.h: No such file or directory

In file included from C:/GTK/include/gtkmm-2.4/gtkmm/widget.h:43,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/container.h:29,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/bin.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/window.h:32,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/dialog.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm/aboutdialog.h:30,

                 from C:/GTK/include/gtkmm-2.4/gtkmm.h:34,

                 from C:\Dokumente und Einstellungen\Lit-Web\Eigene Dateien\cpp_projects\test_gt\main.cpp:2:

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:93: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:93: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:93: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:93: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:138: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:138: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:138: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:138: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:172: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:172: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:172: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:172: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:256: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:256: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:256: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:256: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:298: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:298: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:298: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:298: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:329: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:329: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:329: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:329: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:364: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:364: error: expected template-name before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:364: error: expected `{' before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:364: error: expected unqualified-id before '<' token

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:398: error: `Value' is not a template

C:/GTK/include/gtkmm-2.4/gtkmm/enums.h:398: error: expected template-name before '<' token

Bearbeitet von lit-web

nabend....

also wenn ich code::blocks 10.05 starte ist rechts oben in dem aufpoppenden fenster keineswegs die auswahl für consolenanwendung....

  • Autor
nabend....

also wenn ich code::blocks 10.05 starte ist rechts oben in dem aufpoppenden fenster keineswegs die auswahl für consolenanwendung....

Ich weis nicht was für eine Version ich grad habe, aber bei mir ist das so, siehe Anhang. Wie du siehst rechts oben die Schaltfläche Console application

post-59128-14430448815743_thumb.jpg

ah die version 8.02...schau mal oben in deinem screenshot....

hab die version 10.05

kannst das ganze auch morgen mal aufn usb stick packen und gibst es mir mit....(also kopieren wir auf einen meiner sticks)da schau ich mir das mal an daheim...

also wenn das okay ist für dich.

  • Autor

Guten Abend @all,

also nachdem ich nun komplett am verzweifeln bin und das schlicht weg nicht bei Code::Blocks zum laufen bekomme kennt jemand eine IDE wo man einfacher mit gtkmm arbeiten kann?

In CB geht das mit einer gtk+ Projct Anwendung ja ohne Probleme, aber die gtkmm will einfach nicht laufen.

Gruß Lit-Web

3.) Ich wähle aus dem Unterregister den Reiter Compiler drücke da auf Add, das was da drin steht an Pfad (Pfad zum Project) lösche ich raus und schreibe da folgendes rein C:\GTK\include\gtkmm-2.4\
Ich sage es jetzt zum dritten Mal: Du sollst da C:\GTK\include und alle Unterverzeichnisse eintragen. Eins reicht nicht!
  • Autor

Ok, das sind ja reichlich Unterverzeichnisse in dem include.

Gibts da einen Weg das ich eine Datei erstelle in dem ich die ganzen Pfade zu den Unterverzeichnissen die da in dem include Verzeichnis drin sind eintrage und dann nur diese Datei da ein eintrage? Wenn ja was für eine Datei sollte das sein und wo sollte man diese am besten speichern so das sie immer flexibel eintragbar ist?

Danke Gruß Lit-Web

  • Autor

Guten Morgen Leute,

also ich habe nun alle Verzeichnisse und Unterverzeichnisse included, aber ich bekomme trotzdem noch ne riesen Palette an Fehlermeldungen. Ich hänge das Mini Projekt mal als rar Datei mit an, vieleicht könnt ihr mal drüber schauen ob ich etwas falsch gemacht habe.

Denn so langsam bin ich mit meinem Latein am Ende.

Vielen Dank Lit-Web

gtk_test.rar

Da fehlen einfach noch etliche Verzeichnisse. Du musst dir immer die erste Fehlermeldung ansehen und das passende Verzeichnis hinzufügen.

Mit denen hier sollte es dann für den Compiler reichen:

C:\GTK\lib\glibmm-2.4\include

C:\GTK\lib\glib-2.0\include

C:\GTK\include\sigc++-2.0

C:\GTK\include\gtk-2.0

C:\GTK\lib\sigc++-2.0\include

C:\GTK\include\pango-1.0

C:\GTK\lib\gtk-2.0\include

C:\GTK\lib\gdkmm-2.4\include

C:\GTK\include\cairomm-1.0

C:\GTK\include\atk-1.0

  • Autor

Die Sachen hier

C:\GTK\include\sigc++-2.0

C:\GTK\include\gtk-2.0

C:\GTK\include\pango-1.0

C:\GTK\include\cairomm-1.0

C:\GTK\include\atk-1.0

habe ich hinzugefügt, die fehlten, aber die lib Sachen standen doch beim Linker mit drin. Oder müssen die auch ins Register Compiler?

habe ich hinzugefügt, die fehlten, aber die lib Sachen standen doch beim Linker mit drin. Oder müssen die auch ins Register Compiler?
Beim Linker haben Headerverzeichnisse absolut nichts verloren. Alle Einträge, die du bei Linker Search Directories gemacht hast, sind sinnlos. Da gehören Verzeichnisse rein, die Libraries enthalten.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.