Segmentation fault ... kann ich auch ! (STLPort)



  • mein Programm

    // test.cpp
    // einfach zum testen ob basis bibos funktionieren ... 
    
    #include <stdlib.h>
    #include <string>
    #include <iostream>
    
    int main(int argc, char *argv[])
    {
        std::string strText = "Hallo World ! ";
        std::cout << strText << std::endl;
        return EXIT_SUCCESS;
    }
    

    Ja, ich weiss, etwas einfalltslos ! 😃
    (Habs kurz nur nachempfunden, hab die Linux Kiste ned hier ... also wenn grobe Verschreiber drin sind sorry ... )

    Ok, schritt 1 ... compilieren unter Linux, Gentoo, noch keine Grossen aenderungen am System, alles funzt !

    Um von windows und Linux auf den "gleichen Standard" zumindest bei der STL zugreifen zu koennen, wollt ich den STLPort (www.stlport.org) verwenden.

    Gentoo hat nen ebuild fuer, also kein Problem emerge STLPort ... kopiert die Headers und uebersetzt die iostream Lib. die Lib wird unter /user/lib/libstlport_gecc.a beziehungsweise /user/lib/libstlport_gcc.so.4.5 mit den dazugehoerigen symbolischen links erstellt, kein Problem.

    stl_user_config.h angepasst ...
    _REENTRANT gesetzt ...

    Schritt 2.
    Project einstellungen, stlport verzeichniss als Include Verzeichniss einfuegen. -I/usr/include/stlport
    ueberstezen und siehe da, unresolved symbols _STL::iostream ... etc ... ok,zieht richtige Header an ... nun noch die iostream bibo zulinken

    Schritt 3.
    Linker einstellungen ... -lstlport_gcc
    compilieren ... und unresolved symbols pthread::keyxxxx .... und noch paar mehr.
    Ok, ich brauch die pthread fuer multithreading ... klingt logisch

    Schritt 4.
    Linker einstellungen hinzufuegen ... -lpthread
    compulieren ... Juhuu - Success ...

    Programm ausfuehren -> Segmentation fault !
    Urks ... naja, bin doch ned so schlau ! :p
    Nen komplett neu ueberstzen, includive neues automake und configure ... aendert nix !

    Nun meine Frage, an was liegst.
    System ist nen Gentoo ... gcc version irgendwas mit 3.2 ...

    Muss ich wegen dem stlport ne systemlib neu uebersetzen ??? hoffentlich ned !
    Ist mein Kernel ned tauglich ? hoffentlich auch ned....
    Hab ich ne einstellung in stl_user_config.h vergessen / Falsch ???

    Wo liegt mein fehler ?

    Ciao ...



  • Check doch mal wie im anderen Thread, wo den Programm crasht. Also beim kompilieren mit -g und dann gdb durchlaufen lassen. Vielleicht gibts da ja nen netten Anhaltspunkt.



  • Ok ich versuchs mal, aber ich denk es wird noch bevor ich in meine main springe, crashen ... Ich poste mein erfolg heut abend !

    Ciao ...



  • Also ned wie erwartet bei eintritt in main ... sondern bei:

    cout << ...

    in _ostream.h
    zeile 121

    if(this->rdbuf())
    ...

    beim flushen des buffers von basic_ofstream

    da bekommt er SIGSEV ...

    nehm mal an, irgendwas stimmt mit threading ned .... !?

    Ciao ...


Anmelden zum Antworten