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 zulinkenSchritt 3.
Linker einstellungen ... -lstlport_gcc
compilieren ... und unresolved symbols pthread::keyxxxx .... und noch paar mehr.
Ok, ich brauch die pthread fuer multithreading ... klingt logischSchritt 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 121if(this->rdbuf())
...beim flushen des buffers von basic_ofstream
da bekommt er SIGSEV ...
nehm mal an, irgendwas stimmt mit threading ned .... !?
Ciao ...