include-Verzeichnisse, librarys, frameworks und linken



  • Hallo Community,

    ich verstehe einige Vorgänge beim kompilieren und linken nicht ganz.
    Bei

    #include "Datei.hpp"
    

    ist der Pfad in den " " absolut

    Hingegen bei

    #include <Datei.hpp>
    

    ist das das Standard-Include-Verzeichnis (oder so?).
    Soweit ich weiß, muss das aber nicht so sein, kann also

    #include <iostream>
    

    auch einfach als eine Art schalter wirken (ich bin mir nicht sicher)?

    Wie kann ich Include-pfade manuell hinzufügen?
    Es gibt ja *_INCLUDE_PATH und -I.
    Dann wäre der Aufruf z.b. g++ -o Programm *.cpp -I../Header. Ist das so richtig?

    Dann zu Librarys:
    Wenn ich eine Library zum linken angebe, wie findet der Linker diese? Gibts dafür auch ein Standard-Verzeichnis? Wenn ja, wie gibt man einen expliziten Pfad an?

    Und eine letzte:
    Was genau ist ein Framework?

    Ich frage aus aktuellem Anlass, da ich gerne die SFML benutzen möchte, ich aber beim "installieren" scheitere.
    Ich benutze einen Mac, und da ist nur ein template für Xcode beigefügt, damit kann ich auch compilieren und Linken, aber ich möchte XCode nicht verwenden.
    Ich dachte mir, ich könnte einfach eine Library aus den Quellcodes erstellen, aber damit kene ich mich nicht aus...

    Es tut mir leid, dass ich ein wenig wirr schreibe, aber mir fehlt einfach der gesamtüberblick. Vielleicht kennt jemand ja eine schöne Einführung in den ganzen Prozess.

    Vielen Dank schonmal!

    Grüße



  • Hyde++ schrieb:

    Hallo Community,

    ich verstehe einige Vorgänge beim kompilieren und linken nicht ganz.
    Bei

    #include "Datei.hpp"
    

    ist der Pfad in den " " absolut

    Hingegen bei

    #include <Datei.hpp>
    

    ist das das Standard-Include-Verzeichnis (oder so?).

    Soweit korrekt.

    Soweit ich weiß, muss das aber nicht so sein, kann also

    #include <iostream>
    

    auch einfach als eine Art schalter wirken (ich bin mir nicht sicher)?

    Nö, iostream gehört zum Standardzeugs und das wird im Standard include Verzeichnis gefunden.

    Wie kann ich Include-pfade manuell hinzufügen?
    Es gibt ja *_INCLUDE_PATH und -I.
    Dann wäre der Aufruf z.b. g++ -o Programm *.cpp -I../Header. Ist das so richtig?

    Header muß ein Verzeichnisname sein.
    Außerdem würde ich Makefiles benutzen, damit spart man sich das viele erneute Tippen.

    Dann zu Librarys:
    Wenn ich eine Library zum linken angebe, wie findet der Linker diese? Gibts dafür auch ein Standard-Verzeichnis? Wenn ja, wie gibt man einen expliziten Pfad an?

    Im dem du ihm sagst, wo die Lib ist.
    Das geht in der Regel mit -L

    Und eine letzte:
    Was genau ist ein Framework?

    Eine Büroanwendung aus DOS Tagen und
    http://de.wikipedia.org/wiki/Framework

    Ich frage aus aktuellem Anlass, da ich gerne die SFML benutzen möchte, ich aber beim "installieren" scheitere.
    Ich benutze einen Mac, und da ist nur ein template für Xcode beigefügt, damit kann ich auch compilieren und Linken, aber ich möchte XCode nicht verwenden.
    Ich dachte mir, ich könnte einfach eine Library aus den Quellcodes erstellen, aber damit kene ich mich nicht aus...

    Dann schau wir es unter Linux gemacht wird.
    Mac OS X ist ein Unix, da sollte das alles recht ähnlich sein.



  • Hyde++ schrieb:

    Was genau ist ein Framework?

    http://de.wikipedia.org/wiki/Framework_(Software)


Anmelden zum Antworten