Ho avuto anche diversi problemi (Ubuntu 13.04 64-bit, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Molte cose sono menzionate sopra, mi dispiace ripeterle, ma in più ho avuto problemi di utilizzo
std::thread
come parte di c ++ 11 (l'aggiunta di -pthread per il linker risolve questo problema). Ad ogni modo, finalmente queste impostazioni hanno funzionato bene:
Progetto -> Proprietà -> Build C / C ++ -> Impostazioni -> Varie. Aggiungi il
-std=c++11
flag per i compilatori GCC e G ++. Fai clic su Applica.
Per il linker, stessa finestra, Varie, Flag linker, aggiunto il
-pthread
bandiera. Impostazioni della libreria condivisa, Nome oggetto condiviso, aggiungere il
-Wl,--no-as-needed
anche la bandiera. Fai clic su Applica.
C / C ++ Generale -> Percorsi e simboli -> Simboli TAB, GNU C ++ selezionato, Aggiungi il
__GXX_EXPERIMENTAL_CXX0X__
(senza valore)
bandiera. Fai clic su Applica.
C / C ++ Generale -> Preprocessore Includi percorsi .. -> Scheda Provider: selezionare
Impostazioni del compilatore incorporato CDT GCC
e per "Comando per ottenere le specifiche del compilatore", aggiungi il
-std=c++11
bandiera. Deseleziona Condividi. Fai clic su Applica.
CDT gestisce le voci di impostazione build, controlla anche questo. Deseleziona gli altri due. Fai clic su Applica.
Tornando alla scheda Voci, GNU C ++ CDT Gestisce le voci delle impostazioni di creazione, ora dovresti vedere le tue aggiunte
__GXX_EXPERIMENTAL_CXX0X__
iscrizione.
Questo è tutto. Quando si codifica, si digita
std::
ora può completare automaticamente la classe di thread, ad esempio, le build dovrebbero funzionare bene e non dovrebbero esserci
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
in fase di esecuzione.
std::unique_ptr<char[]>