J'ai également eu plusieurs problèmes (Ubuntu 13.04 64 bits, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Beaucoup de choses sont mentionnées ci-dessus, désolé de les répéter, mais en plus j'ai eu des problèmes avec
std::thread
dans le cadre de c ++ 11 (l'ajout de -pthread pour l'éditeur de liens résout ce problème). Quoi qu'il en soit, ces paramètres ont finalement bien fonctionné:
Projet -> Propriétés -> Build C / C ++ -> Paramètres -> Divers. Ajouter le
-std=c++11
indicateur pour les compilateurs GCC et G ++. Cliquez sur Appliquer.
Pour l'éditeur de liens, même fenêtre, Divers, Indicateurs de l'éditeur de liens, a ajouté le
-pthread
drapeau. Paramètres de bibliothèque partagée, nom d'objet partagé, ajoutez le
-Wl,--no-as-needed
drapeau aussi. Cliquez sur Appliquer.
C / C ++ Général -> Chemins et symboles -> Symboles TAB, GNU C ++ sélectionné, Ajouter le
__GXX_EXPERIMENTAL_CXX0X__
(aucune valeur)
drapeau. Cliquez sur Appliquer.
C / C ++ Général -> Préprocesseur Inclure les chemins .. -> Onglet Fournisseurs: vérifier
Paramètres du compilateur intégré CDT GCC
et pour "Commande pour obtenir les spécifications du compilateur", ajoutez le
-std=c++11
drapeau. Décochez Partager. Cliquez sur Appliquer.
CDT gère les entrées des paramètres de génération, vérifiez également cela. Décochez les deux autres. Cliquez sur Appliquer.
Pour en revenir à l'onglet Entrées, GNU C ++ CDT gère les entrées de paramètres de construction, vous devriez maintenant voir votre ajouté
__GXX_EXPERIMENTAL_CXX0X__
entrée.
C'est tout. Lors du codage, de la frappe
std::
peut maintenant compléter automatiquement la classe de threads par exemple, les versions devraient fonctionner correctement et il ne devrait pas y avoir
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
lors de l'exécution.
std::unique_ptr<char[]>