Ich hatte auch einige Probleme (Ubuntu 13.04 64-Bit, g ++ - 4.8, Eclipse Juno 3.8.1, CDT 6.0.0). Viele Dinge wurden oben erwähnt, es tut mir leid, diese zu wiederholen, aber zusätzlich hatte ich Probleme bei der Verwendung
std::thread
als Teil von c ++ 11 (das Hinzufügen von -pthread für den Linker löst dieses Problem). Wie auch immer, endlich haben diese Einstellungen gut funktioniert:
Projekt -> Eigenschaften -> C / C ++ Build -> Einstellungen -> Verschiedenes. Ergänzen Sie die
-std=c++11
Flag für die GCC- und G ++ - Compiler. Klicken Sie auf Übernehmen.
Für den Linker fügte dasselbe Fenster, Verschiedenes, Linker-Flags, das hinzu
-pthread
Flagge. Einstellungen für freigegebene Bibliotheken, Name des freigegebenen Objekts, fügen Sie die hinzu
-Wl,--no-as-needed
Flagge auch. Klicken Sie auf Übernehmen.
C / C ++ Allgemein -> Pfade und Symbole -> Symbole TAB, GNU C ++ ausgewählt, Hinzufügen der
__GXX_EXPERIMENTAL_CXX0X__
(kein Wert)
Flagge. Klicken Sie auf Übernehmen.
C / C ++ Allgemein -> Präprozessor-Einschlusspfade .. -> Registerkarte Anbieter: Aktivieren
Integrierte CDT GCC-Compilereinstellungen
und für "Befehl zum Abrufen der Compilerspezifikationen" fügen Sie das hinzu
-std=c++11
Flagge. Deaktivieren Sie Freigeben. Klicken Sie auf Übernehmen.
CDT verwaltet Build-Einstellungseinträge. Überprüfen Sie dies ebenfalls. Deaktivieren Sie die beiden anderen. Klicken Sie auf Übernehmen.
Wenn Sie zur Registerkarte "Einträge" zurückkehren und GNU C ++ CDT die Einträge für Build-Einstellungen verwaltet, sollten Sie nun Ihre hinzugefügten Einträge sehen
__GXX_EXPERIMENTAL_CXX0X__
Eintrag.
Das ist es. Beim Codieren tippen
std::
kann jetzt die Thread-Klasse jetzt automatisch vervollständigen, Builds sollten gut funktionieren und es sollte keine geben
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
zur Laufzeit.
std::unique_ptr<char[]>