#include <iostream>
#include <thread>
using namespace std;
void f(){
cout << "Ceci est un message à executer par un thread." << endl;
}
int main()
{
thread t(f);
t.join();
cout << "terminé !";
return 0;
}
retourne l'erreur suivante lors de la compilation :
erreur : "thread" was not declared in this scope
et quand j'ajoute "std::" devant le "thread" de la ligne 12, j'obtient :
erreur : "thread" is not a member of "std"
Je cherche donc de l'aide pour m'aider à résoudre le problème, car j'ai déjà fait des recherches sur d'autres sites et sur d'autres forums OpenClassrooms, mais rien ne fonctionne chez moi.
Mon IDE est code::blocks, mon compilateur minGW et je suis sous windows.
J'ai trouvé ceci, mais ça ne ressemble pas du tout au minGW que j'ai actuellement (excusez moi je suis débutant et avec le cours d'OpenClassrooms je crois que je n'ai pas toute les notions) comment je devrais l'installer ?
Sur Windows, si tu débutes, le plus simple reste d'utiliser Microsoft Visual Studio. C'est gratuit et c'est l'outil de dev fournit par Microsoft. Tu as juste a penser a bien selectionner "C++" lors de l'installation.
MingW est un portage du compilateur GCC. C'est pas mauvais en soi, mais l'installation et configuration est parfois casse pied.
Merci pour la réponse mais, pour une raison que je ne peux pas citer (mais qui n'a en quelque sorte rien à voir avec la programmation) je ne préfère pas utiliser Visual Studio.
De plus, je n'aime pas l'idée d'abandonner quelque chose car je n'y arrive pas, alors j'aimerais réussir cette installation.
Je vais essayer de me renseigner sur l'installation.
En tout cas, merci quand même pour votre aide et vos réponses.
J'imagine que c'est pour des raisons de "j'aime pas microsoft". Libre a toi.
Et il ne s'agit pas d'abandonner, mais de continuer dans un premier temps avec des choses plus accessibles, puis revenir sur ce problème quand tu auras plus l'habitude du fonctionnement des compilateurs sur Windows. Mais encore une fois, libre a toi.
Par contre, il faut reprendre les choses dans l'ordre. Avant de proposer de mettre à jour MingW, les autres intervenants auraient dû commencer par te demander quelle version tu utilises et où/comment tu l'as installé. Tu peux le savoir en utiliser "gcc --version" en ligne.
Sur ta copie d'écran, tu sembles utiliser mingw-w64. C'est une bonne chose, "mingw" n'est plus maintenu, il faut utiliser "mingw-w64". Tu sembles avoir la version 10, donc ca semble correct.
Le site officiel https://www.mingw-w64.org/downloads/ ne fournit pas directement les binaires, il faut donc passer par un site qui les fournis. Le plus simple est d'utiliser les sites proposés sur le site officiel de mingw-w64, par exemple MSYS2 https://www.msys2.org/. Tu as les instructions d'installation en utilisant le .exe.
Et, dans le pire des cas, il est toujours possible d'installer MSYS2 (un émulateur d'un système linux, en fait) dont la chaine de compilation peut sans problème s'utiliser sous windows
l'énorme avantage étant qu'il vient avec tout son ensemble de paquets, et donc de bibliothèques externes qui pourrait t'intéresser
Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
@Yixraie: Je ne sais pas pourquoi tu ne veux pas utiliser Visual Studio ... Il me semble que MinGW-W64 peut être appelé en invite de commande sous cmd. Je le faisais, mais j'avais la version 8.3 de sourceforge, pas l'idéal.
Le Tout est souvent plus grand que la somme de ses parties.
Par contre, il faut reprendre les choses dans l'ordre. Avant de proposer de mettre à jour MingW, les autres intervenants auraient dû commencer par te demander quelle version tu utilises et où/comment tu l'as installé. Tu peux le savoir en utiliser "gcc --version" en ligne.
Sur ta copie d'écran, tu sembles utiliser mingw-w64. C'est une bonne chose, "mingw" n'est plus maintenu, il faut utiliser "mingw-w64". Tu sembles avoir la version 10, donc ca semble correct.
Le truc c'est de ne pas prendre la version avec les threads win32, car non compatibles avec la librairie thread à ma connaissance.
L'op, tu as téléchargé le code source de MinGW, récupère plutôt un binaire sur https://winlibs.com/ comme indiqué précédemment (https://github.com/brechtsanders/winlibs_mingw/releases/download/12.1.0-14.0.4-10.0.0-msvcrt-r2/winlibs-x86_64-posix-seh-gcc-12.1.0-mingw-w64msvcrt-10.0.0-r2.7z par exemple).
Sinon tu peux installer msys2 et passer par pacman, c'est un petit peu plus compliqué.
J'imagine que c'est pour des raisons de "j'aime pas microsoft". Libre a toi.
Ce qui en soit serait assez culotté, étant sous Windows pour le coup.
@Yixraie, je t'invite à passer via msys2 si tu veux un toolchain MinGW récent avec un gestionnaire de paquets décent. En plus il y a un toolchain clang fourni (qui est à des années lumières devant GCC).
- Edité par markand 23 juin 2022 à 10:01:06
git is great because Linus did it, mercurial is better because he didn't.
Merci beaucoup à tous ! Je retiendrais ce que vous m'avez proposés si j'en ai besoin !
L'installer mingw-64 n'a pas fonctionné et a retourné une erreur, mais sur source forge j'ai trouvé un zip dudit mingw-64 et je l'ai intégré à mon IDE après l'avoir décompressé.
Grâce à ça, les threads marchent désormais à merveille !
Merci encore à vous tous, je passerai le sujet en résolu dans 2 jours si jamais vous voulez m'avertir que ma solution n'est pas bonne.
Problème de threads en c++.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr
Discord NaN. Mon site.
Discord NaN. Mon site.
Le Tout est souvent plus grand que la somme de ses parties.
git is great because Linus did it, mercurial is better because he didn't.