Un autre “undefined reference” erreur lors de la liaison de bibliothèques boost

J'ai vu plusieurs autres posts qui traitent de ce même problème. Cependant, aucune de leurs solutions semblent fonctionner pour moi. Je suis de compiler le code suivant:

#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/timer/timer.hpp>

using namespace boost::numeric::ublas;

int main(){    
   matrix<double> mat1 (3,3);
   matrix<double> mat2 (3,3);
   matrix<double> mat3 (3,3);

   unsigned k=0;

   for(unsigned i = 0; i < mat1.size1(); ++i){
      for(unsigned j = 0; j < mat1.size2(); ++j){
         mat1(i,j) = k;
         mat2(i,j) = 2*k++;
      }   
   }   

   k=0;
   if(1){
      boost::timer::auto_cpu_timer t;
      while(k<1000){
         mat3 = prod(mat1,mat2);
         k++;
      }   
   }   
   return 0;
}

Je compile en ligne de commande avec:

$ g++ matrix_test.cpp -o matrix_test -lboost_system -lboost_timer

et de recevoir le message d'erreur suivant:

usr/lib/gcc/i686-redhat-linux/4.7.0/../../../libboost_timer.donc:
undefined reference to `boost::chrono::steady_clock::now()'
collect2: erreur: ld a retourné 1 code de sortie

Si j'ajoute -lboost_chrono quand je compile, j'obtiens cette erreur:

/usr/lib/gcc/i686-redhat-linux/4.7.0/../../../libboost_chrono.donc:
undefined reference to `clock_gettime'
collect2: erreur: ld a retourné 1 code de sortie

Je peux trace clock_gettime à sys/time.h. Malheureusement, je ne peux pas trouver un correspondant .si le fichier à lier. Ce qui me manque ici?

OriginalL'auteur Joshua Hewlett | 2012-11-30