includes "global" verwenden



  • Hallo,

    Ich frage mich soeben wie ich Headerdateien, die nicht unter /usr/include/c++/4.4.1/ liegen mit dem Gnu c++ g++ compiler einbinden kann.

    Schreibe ich etwas wie #include <gtkmm-2.4/gtkmm.h> wird zwar die gtkmm.h die in /usr/include/gtkmm-2.4/ liegt gefunden, aber nicht die Dateien die sie selbst einbindet.

    Die für mich simpelste Lösung wäre den kompletten /usr/include/ durchsuchen zu lassen und nicht nur /usr/include/c++/4.4.1/

    Für jede Hilfe dankbar verbleibe ich


  • Mod

    Mit dem Kommandozeilenargument -I kannst du Includepfade angeben. Ebenfalls sehr nützlich ist -L für Bibliotheken.

    Beispiel:

    g++ mein_programm.cpp -I/obskurer/pfad/1/ -I/obskurer/pfad/2/ -L/pfad/zu/obkurer/lib/ -lobskurelib -o meine_executable
    

    Es gibt auch Umgebungsvariablen, die das ebenfalls leisten können, die mir aber gerade nicht einfallen. Falls du lieber Umgebungsvariablen nutzen willst, sollten diese sich leicht ergooglen lassen oder in der Doku der GCC stehen.



  • Das funktioniert zwar theoretisch ist aber beim Beispiel von gtk nicht durchführbar da man wohl jeden Ordner auflisten müsste indem eine benötigte Datei liegt. Das wären hier ca 10. Die jedesmal von Hand zu binden wäre...unschön.

    Exisiert möglicherweise ein Platzhalter ala /usr/include/* ?



  • Such mal nach pkg-config in Verbindung mit gtkmm.
    PS: Hier steht das u.a. auch.



  • Wie waere es mit einem makefile? Genau dafuer sind die naemlich da.


Anmelden zum Antworten