在安装libmlpack-dev、将其包含在我的程序中并对其进行编译后,我得到以下错误。
/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有没有人能建议如何解决这个问题。
附言:我在https://askubuntu.com/questions/847048/mlpack-error-while-building中问过这个问题
发布于 2016-11-15 02:07:33
这是旧版本Ubuntu上的mlpack的一个问题。如果您将Ubuntu升级到较新的版本,并更新mlpack包,这个问题应该会得到解决。但如果您无法做到这一点,您可以直接编辑文件/usr/include/mlpack/methods/kmeans/kmeans_impl.hpp,以便行
if (isnan(cNorm) || isinf(cNorm))被更改为
if (std::isnan(cNorm) || std::isinf(cNorm))这应该可以解决这个问题。
https://stackoverflow.com/questions/40501935
复制相似问题