threads unter OSX Lion und Netbeans 7.1



  • Hallo zusammen,

    ich habe beschlossen mich etwas mit nebenläufiger Programmierung zu befassen und möchte dies gerne unter OSX Lion, Netbeans 7.1 mit C++ versuchen. Leider stoße ich bei den ersten Gehversuchen schon auf Schwierigkeiten, da meine Installation keine threads kennt.

    Ich inkludiere "thread" mit

    #include <thread>
    

    Leider wird diese Datei vom System nicht gefunden. Ich vermute es liegt daran, dass mein compiler zu alt ist? Ich habe schon ewig gegooglet um zu sehen wie ich das Ding updaten kann aber ich komme zu keinem richtigen Ergebnis. Hat jemand Erfahrung damit und kann mir verraten wie ich meine Compiler updaten kann, so dass sie C++11 unterstützen (und damit hoffentlich auch threads)?

    Vielen Dank im Voraus

    Tim

    Edit: Ich habe in Xcode schon die neuste "Command Line Tools" Version installiert aber leider hat das auch nichts gebracht.



  • wird unter osx nicht der gcc als standard-compiler mitgeliefert ? wenn ja, füge mal zum compileraufruf -std=C++0x hinzu. das dürfte aber nicht der grund sein, warum es nicht klappt. probier mal aus, wenn du folgendes aufrufst: g++ --version und schau dann nach, ob deine version threads überhaupt unterstützt.
    und hier hatte jemand glaub ich ein ähnliches problemhttp://stackoverflow.com/questions/2519607/stdthread-error-thread-not-member-of-std



  • Xcode bringt eine eigene C++ version mit die im Xcode.app Verzeichnis liegt. Diese wurde upgedated, so dass ich in Xcode schon mal C++11 benutzen kann. Die C++ Version die Netbeans verwendet liegt unter /usr/include/c++/4.2.1 Dort sind die ganzen files der STL untergebracht (vector, list, ...) Mein Compiler ist auf dem neusten Stand aber wie update ich nun die STL files?



  • Wenn du auf dem Mac C++11 verwenden möchtest, musst du clang++ statt gcc benutzen. Du kannst die aktuellen Kommandozeilenprogramme aus XCode heraus aktualisieren, oder die im XCodepfad mit xcrun Aufrufen (also z.B. xcrun clang++). Ausserdem musst du -std=c++11 angeben, um C++11 Code zu erzeugen. Um die aktuellen C++11 Libs (die auch thread enthalten) zu benutzen, musst du noch ein extra Flag auf der Kommandozeile setzen, das kenne ich aber nicht auswendig.

    Ich würde dir XCode statt Netbeans empfehlen, das wird dir die Sache vermutlich einfacher machen, da du dort einfach dir Konfiguration zusammenklicken kannst.



  • Der mitgelieferte Compiler ist alt. Installier die nen aktuellen GCC ueber Macports.


Anmelden zum Antworten