Problem mit Header-Files



  • Hi!
    Bin totaler Linux Neuling und habe folgendes Problem:

    Ich will ein Programm kompilieren, das die fstream.h, die iostream.h verwenden soll. Versuche ich

    #include <iostream.h>
    #include <fstream.h>
    

    meckert er "File not found".
    Jetzt hab ich mal nach den Dateien gesucht, und sie stehen in /usr/include/g++.
    Ok, denk ich mir, hab ich folgendes versucht:

    #include <g++/iostream.h>
    #include <g++/fstream.h>
    

    resultat:
    /usr/include/g++/fstream.h:30: iostream.h File not found
    /usr/include/g++/fstream.h:31: streambuf.h File not found

    nun, da denk ich mir: Da muss doch irgendeine PATH-Variable flasch gesetzt sein. Jetzt stehe ich aber bei Linux wieder, wie so oft vor einem Problem: Man findet einfach NIRGENS eine Lösung. Könnt ihr mir da helfen :p ??

    Gruss, code_pilot 🙄

    [ Dieser Beitrag wurde am 05.05.2003 um 19:28 Uhr von code_pilot editiert. ]



  • #include <iostream>
    #include <fstream>



  • auch schon probiert, liefert dasselbe ergebnis:

    iostream: File not found

    ... 😞



  • Sollte nicht sein; was gibt denn "g++ -v" aus?



  • hmm gibt aus:

    Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs

    ... fahre SuSE 7.1 Pro

    Gruss, code_pilot



  • Original erstellt von code_pilot:
    **```cpp
    #include <g++/iostream.h>
    #include <g++/fstream.h>

    
      
      
    resultat:  
    /usr/include/g++/fstream.h:30: iostream.h File not found  
    /usr/include/g++/fstream.h:31: streambuf.h File not found**
    

    Versuch mal nen symbolischen Link von der iostream.h und streambuf.h in das Verzeichnis g++ zu legen. Der Compiler meckert ja rum, dass er die Headerdateien in die Datei fstream.h nicht inkludieren kann. Oder kopier mal die fstream.h in /usr/include rein...
    Ob's hilft?: probieren geht über studieren 😃



  • Original erstellt von code_pilot:
    **hmm gibt aus:

    Reading specs from /usr/lib/gcc-lib/i486-suse-linux/2.95.2/specs
    **

    Sonst nichts? Wenn nein was findest Du dort? (Lass Dir doch nicht alle Informationen so aus der Nase ziehen! 🙂 )

    RTC: Gaaanz schlechte Idee, das ist ein sehr grundlegendes Problem, hier ist es keine Lösung wild einzelne Header zu versymlinken oder herumzukopieren!



  • Hab jetzt mal in /usr/include/g++ als root cp *.h .. gemacht ...

    ok jetzt findet er die header ... aber nun habe ich folgendes Problem:

    Das Programm das ich kompilieren will ist eine Portierung von Windows, ich will sie eigentlich mal unter Linux gucken ob sie läuft, geht aber nicht, weil er wohl den Datentyp string nicht kennt (tut mir leid aber ich arbeite nunmal gerne damit ;)) nun ja weis jemand von euch was ich dafür inkludieren muss? Muss es doch unter Linux auch geben, den Datentyp string ...

    gruss, code_pilot



  • Original erstellt von <passwortlos>:
    **
    Sonst nichts? Wenn nein was findest Du dort? (Lass Dir doch nicht alle Informationen so aus der Nase ziehen! 🙂 )
    **

    da stehen so spezifikationen drinne in der specs-Datei kann damit aber nicht viel anfangen ...

    code_pilot



  • RTC: Habs vorher überlesen, aber wozu sollte <fstream> <iostream> includen? (fstreams brauchen doch kein cin und Konsorten!)



  • Original erstellt von <passwortlos>:
    RTC: Habs vorher überlesen, aber wozu sollte <fstream> <iostream> includen? (fstreams brauchen doch kein cin und Konsorten!)

    stimmt in fstream ist iostream glaub ich schon inkludiert, nee ich habdas drin wegen dem string-Datentyp der nich funzt 😞



  • code_pilot: Wenn Du Dein Problem schon unbedingt schnell und unsauber lösen möchtest dann mach es wenigstens per "g++ -I/usr/include/g++ testdatei.cpp" oder so ähnlich, das Kopieren ist wirklich eine seeeehr schlechte Lösung!
    Und string ist natürlich in <string> zu finden.



  • Original erstellt von code_pilot:
    stimmt in fstream ist iostream glaub ich schon inkludiert, nee ich habdas drin wegen dem string-Datentyp der nich funzt 😞

    Du hast meinen Post falsch verstanden, in <fstream> ist <iostream> natürlich noch nicht ignoriert, da sind lediglich <istream> und <ostream> drin.



  • jo super jetzt runnts :)))) ... jetzt muss ich nur ersmtal ein paar syntaxfehler ausbügeln...

    thx und gruss, code_pilot 😃



  • welcher Header welchen anderen includiert ist im Standard AFAIK nicht festgelegt!

    und wenn die specs nicht in Ordnung sind, würde ich die lieber mal einrichten



  • SHIT!
    Ok jetzt hab ich alle fehler aus meinem Prog beseitigt, das programm wird KOMPILIERT! Das wars! Jetzt meldet sich der nette linker mit um die 100 Fehlermeldungen, die so heissen wie

    /tmp/cczCuH88.o In function '__malloc_alloc_tempalte<0>::_S_oom_malloc(unsigned int)'

    und irgendwas mit undefined reference 😞 😞 😞 😞 😞 😞

    is schon schwer so ein programm zu kompilieren... 😮 😡

    Nee, ich brauch jetzt erstmal'n Bier...

    [ Dieser Beitrag wurde am 05.05.2003 um 20:26 Uhr von code_pilot editiert. ]



  • Original erstellt von kingruedi:
    welcher Header welchen anderen includiert ist im Standard AFAIK nicht festgelegt!

    Schon klar, aber es wäre trotzdem ziemlich unsinnig, wenn <fstream> <iostream> inkludieren würde, <fstream> braucht doch cout und so gar nicht...

    und wenn die specs nicht in Ordnung sind, würde ich die lieber mal einrichten

    Meine Rede. 😃



  • Jaaa danke!
    Würde ich mal lieber einrichten ... das ist immer so bei Linux, wenn du was nicht weis wird dir gesagt: Musst du einrichten! WIE EINRICHTEN, WENN MAN NULL-AHNUNG HAT? ... 😞 und das linkerproblem ist immer noch net gelöst...



  • das Problem hat etwas mit den nicht eingerichteten Specs zu tun. Eigentlich sollten die eingerichtet sein, wenn du den GCC installierst, kam da vielleicht ein Fehler oder so was? Versuch den entweder neu zu installieren oder lies dir das GCC Manual durch (btw. ist das eigentlich unter irgend einem OS anders, dass man sich die Dokumentation zu etwas durchlesen muss, wenn man Probleme hat? 🙄 )



  • Bezügl. Linker:

    -lstdc++

    mitlinken



  • Hi,

    hast du die C++-Libs ueberhaupt installiert? Oder lediglich den gcc?

    mfg
    v R


Anmelden zum Antworten