J'utilise Ubuntu + Eclipse et boost installé (pas sûr). J'ai installé Boost en utilisant apt-get install libboost *Compilation boost :: thread avec Eclipse
J'ai testé un code simple, il semble que le boost marche bien.
Cependant, lorsque j'essaie d'apprendre la partie thread, le code ci-dessous ne fonctionne pas.
#include <boost/thread/thread.hpp>
#include <iostream>
using namespace std;
void hello()
{
cout<<"hello!"<<endl;
}
int main()
{
boost::thread thrd(&hello);
cout<<"Just a test!"<<endl;
}
L'information d'erreur est la suivante, il y a 4 erreurs.
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/detail/thread.hpp undefined reference to `boost::detail::thread_data_base::~thread_data_base()' FirstCppProject line 40 1260656497961 200
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/detail/thread.hpp undefined reference to `boost::thread::start_thread()' FirstCppProject line 191 1260656497967 202
Severity and Description Path Resource Location Creation Time Id
/usr/local/include/boost/thread/pthread/thread_data.hpp undefined reference to `vtable for boost::detail::thread_data_base' FirstCppProject line 65 1260656497965 201
Severity and Description Path Resource Location Creation Time Id
undefined reference to `boost::thread::~thread()' FirstCppProject test.cpp line 15 1260656497959 199
S'il vous plaît pardonnez-moi si ma question est trop naïve. S'il vous plaît offrir toute information que vous pensez pourrait m'aider.
merci pour votre commentaire rapide. Est-ce un problème avec Eclipse? Alors, comment faire cela dans Eclipse? Je pensais que lorsque j'ai installé boost sur Ubuntu, je n'ai rien à faire avec Eclipse. – skydoor
Non, ce n'est pas un problème d'éclipse, vous devrez spécifier une option pour l'éditeur de liens (vérifiez les options du projet), quelque chose comme -lboost_thread-gcc-4.3 ou similaire, vous devrez d'abord trouver la librairie son nom, vous devrez probablement lier aussi avec pthread. – user229321
Vous devrez lier avec pthread. J'ai dû le faire avant. – KitsuneYMG