RcppArmadillo:未能在CentOS上安装

时间:2014-12-04 14:28:57

标签: r centos rcpp rcpp11

我正在尝试在CentOS上安装RcppArmadillo。以下是一些环境细节:

OS: CentOS release 6.5 (Final)
R version: R-3.1.2-1.el6.x86_64
uname -sr: Linux 2.6.32-431.29.2.el6.x86_64
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)

如果从R中运行install.packages("RcppArmadillo"),我在下面列出了错误消息。任何帮助都非常感谢。欢呼声。

* installing *source* package ‘RcppArmadillo’ ...
** package ‘RcppArmadillo’ successfully unpacked and MD5 sums checked
* checking LAPACK_LIBS: divide-and-conquer complex SVD available via R-supplied LAPACK
** libs
g++ -m64 -I/usr/include/R -DNDEBUG  -I/usr/local/include -I"/home/rexec/R/library/Rcpp/include"  -I../inst/include -fpic  -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic  -c RcppArmadillo.cpp -o RcppArmadillo.o
In file included from ../inst/include/armadillo:97,
             from ../inst/include/RcppArmadilloForward.h:46,
             from ../inst/include/RcppArmadillo.h:30,
             from RcppArmadillo.cpp:22:
../inst/include/armadillo_bits/traits.hpp: In instantiation of ‘const bool arma::is_arma_type<std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum> >::value’:
../inst/include/armadillo_bits/op_expmat_meat.hpp:51:   instantiated from here
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_elem2’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_elem1’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_col’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_row’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T>     struct arma::is_diagview’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_mtGlue’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_mtOp’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_eGlue’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_eOp’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Glue’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Op’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Gen’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<unsigned int>, std::__is_floating<unsigned int> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Mat’
../inst/include/armadillo_bits/traits.hpp: In instantiation of ‘const bool arma::is_arma_type<std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum> >::value’:
../inst/include/armadillo_bits/op_expmat_meat.hpp:51:   instantiated from here
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_elem2’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_elem1’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_col’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview_row’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_subview’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_diagview’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_mtGlue’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_mtOp’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_eGlue’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_eOp’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Glue’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Op’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Gen’
../inst/include/armadillo_bits/traits.hpp:614: error: ‘std::__traitor<std::__is_integer<double>, std::__is_floating<double> >::<anonymous enum>’ is/uses anonymous type
../inst/include/armadillo_bits/traits.hpp:614: error:   trying to instantiate ‘template<class T> struct arma::is_Mat’
make: *** [RcppArmadillo.o] Error 1
ERROR: compilation failed for package ‘RcppArmadillo’
* removing ‘/home/rexec/R/library/RcppArmadillo’

The downloaded source packages are in
‘/tmp/Rtmp2hNzB9/downloaded_packages’
Warning message:
In install.packages("RcppArmadillo") :
  installation of package ‘RcppArmadillo’ had non-zero exit status

1 个答案:

答案 0 :(得分:4)

它是CentOS 6附带的古代gcc / g ++ 4.4中的一个错误。升级到具有更新g ++的CentOS 7,或者请求RcppArmadillo maintainers更新到最新版本的Armadillo( 4.550.2)有一个g ++中的bug的解决方法。

您也可以从此网站手动安装旧版本的RcppArmadillo:http://cran.r-project.org/src/contrib/Archive/RcppArmadillo/
版本4.500适用于CentOS 6