[c++ boost] Mon thread ne se lance pas
RésoluFlayme -
Bonjour,
Je viens d'installer boost sur MinGW, je compile le programme si dessous mais quand je lance l'executable rien ne se passe.
Voici mon code:
#include <boost/thread.hpp> #include <string> #include <iostream> void fct(int s, std::string str) { boost::this_thread::sleep_for(boost::chrono::seconds(s)); std::cout << str; } int main() { boost::thread t(&fct, 1, " World"); std::cout << "Hello"; t.join(); return 0; }
La commande pour compiler:
g++ test_thread.cpp -o test_thread.exe -L"\MinGW\lib" -lboost_thread-mgw63-mt-x32-1_66 -lboost_system-mgw63-mt-x32-1_66 -lboost_chrono-mgw63-mt-x32-1_66
Merci d'avance pour votre aide,
Flayme
- [c++ boost] Mon thread ne se lance pas
- Windows ne se lance pas - Guide
- Qu'est ce qui se lance au démarrage de l'ordinateur - Guide
- Dialogue boost - Accueil - Guide streaming
- Quick boost - Télécharger - Optimisation
- Logitech g hub ne se lance pas - Forum Logiciels
2 réponses
J'ai aussi essayé le programme hello world dans la partie tutorial
#include <boost/thread/thread.hpp> #include <iostream> void helloworld() { std::cout << "Hello World!" << std::endl; } int main() { boost::thread thrd(&helloworld); thrd.join(); }
Bonjour,
Le programme que tu as partagé dans le message #0 me paraît correct (si on se réfère par exemple à ce lien). Chez moi sous Linux, il fonctionne :
(mando@silk) (~) $ g++ test_thread.cpp -lboost_thread -lboost_system -lboost_chrono -o test_thread
(mando@silk) (~) $ ./test_thread
Hello World
(mando@silk) (~) $
J'utilise boost 1.74.0-18.1.
Par ailleurs, tu parles d'un tutoriel dans ton message #1. De quel tutoriel parles-tu ? Celui-ci ?
Bonne chance
Merci pour ton retour.
Normalement, tu n'as pas à copier les librairies dans le même dossier que ton fichier.
- Soit les librairies sont dans un dossier standard et ton compilateur devrait les trouver (c'est ce qui s'est passé dans mon message #2);
- Soit il faut passer des options supplémentaires à ton compilateur (voir option -L pour gcc)
Un exemple ici. De plus, si des librairies ne sont pas trouvées, la compilation devrait échouer et tu ne devrais pas avoir d'exécutable du tout (à moins que ce que tu aies lancé soit un précédent résultat de compilation qui n'en dépendait pas).
Bonne chance