2016-11-09 4 views
1

Je reçois l'erreur suivante après avoir installé libmlpack-dev, l'inclure dans mon programme et le compiler.erreur mlpack lors de la construction

/usr/include/mlpack/methods/kmeans/kmeans_impl.hpp: In member function ‘void mlpack::kmeans::KMeans<MetricType, InitialPartitionPolicy, EmptyClusterPolicy, LloydStepType, MatType>::Cluster(const MatType&, size_t, arma::mat&, bool)’: 
/usr/include/mlpack/methods/kmeans/kmeans_impl.hpp:178:20: error: call of overloaded ‘isnan(double&)’ is ambiguous 
if (isnan(cNorm) || isinf(cNorm)) 
       ^
/usr/include/mlpack/methods/kmeans/kmeans_impl.hpp:178:20: note: candidates are: 
In file included from /usr/include/features.h:374:0, 
      from /usr/include/x86_64-linux-gnu/sys/types.h:25 

Quelqu'un peut-il suggérer comment résoudre ce problème?

P.S: J'avais demandé cela dans https://askubuntu.com/questions/847048/mlpack-error-while-building

Répondre

0

Ceci est un problème avec mlpack sur les anciennes versions d'Ubuntu. Si vous mettez à niveau Ubuntu vers une version plus récente et mettez à jour le paquet mlpack, le problème devrait être résolu. Mais si vous ne parvenez pas à le faire, vous pouvez éditer directement le fichier /usr/include/mlpack/methods/kmeans/kmeans_impl.hpp de sorte que la ligne

if (isnan(cNorm) || isinf(cNorm)) 

est changé pour

if (std::isnan(cNorm) || std::isinf(cNorm)) 

et cela devrait résoudre le problème.