Bibliotheken richtig finden



  • Hallo!

    Versuche meine ersten Schritte unter Linux (SUSE 9.2) als C++ Programmierer.
    Und schon Schwierigkeiten: möchte mit "cout" ein HalloWelt schreiben. Und finde nicht, wie das dann mit g++ übersetzt werden kann.
    Habe #include <iostream> drin, aber er kennt cout trotzdem nicht....

    Für sqrt() habe ich den Hinweis gefunden, -lm einzufügen: gcc wurzel.c -lm -o wurzel -> das läuft jetzt! Aber mit dem Versuch -liostream bin ich nicht weiter gekommen....

    Über Hinweise freut sich:

    Chrischan



  • versuch mal ein "using namespace std;" oder auch "using std::cout;"
    (die meisten STL-Komponenten sind Templates, die benötigen keine LIB - aber sie sind standardmäßig im Namespace std)



  • C++-Programme kompiliert man mit g++.

    // hello.cpp
    #include <iostream>
    
    int main()
    {
        std::cout << "Hello world";
    }
    

    Das sollte sich folgendermaßen kompilieren lassen:

    g++ -o hello hello.cpp
    


  • CStoll schrieb:

    (die meisten STL-Komponenten sind Templates, die benötigen keine LIB - aber sie sind standardmäßig im Namespace std)

    Ob Template oder nicht Template hat mit std gar nix zu tun, es ist einfach (fast) alles aus Standardbibliothek im std-Namespace.



  • nman schrieb:

    CStoll schrieb:

    (die meisten STL-Komponenten sind Templates, die benötigen keine LIB - aber sie sind standardmäßig im Namespace std)

    Ob Template oder nicht Template hat mit std gar nix zu tun, es ist einfach (fast) alles aus Standardbibliothek im std-Namespace.

    Da habe ich mich wohl etwas unklar ausgedrückt: STL-Elemente haben keine Extra-Bibliotheksdateien, weil sie Templates sind 😉 (d.h. es wird erst zur Compilezeit festgestellt, welcher Objektcode wirklich benötigt wird).



  • An alle "Antworter"!
    Herzlichen Dank - nun läuft es!
    Die nächste Frage kommt bestimmt!
    Gruß
    Chrischan


Anmelden zum Antworten