[Rcpp-devel] Advice on installing CHOLMOD/Suitesparse

Rodney Sparapani rsparapa at mcw.edu
Wed Aug 29 23:32:38 CEST 2012


Hi Gang:

I have been using CHOLMOD/Suitesparse, but I'm having an issue
coaxing RcppEigen to see it.  I have Matrix, inline, Rcpp and
RcppEigen installed as well as Suitesparse.  But, when I run
this simple program (that works with Rcpp alone)...

require(inline)
require(Rcpp)
require(RcppEigen)

N <- 100
p <- 3
q <- 10

data <- list(X=matrix(NA, N, p), Z=matrix(NA, N, q),
              t=double(N), y=double(N), v1=integer(N), v2=integer(N),
              c=integer(N))

par.info <- list(beta=list(init=0., prior=list(mean=0., prec=0.001)),
                   mu=list(init=c(0., 0.),
                     prior=list(mean=c(0., 0.), prec=diag(0.001, 2))),
                   theta=list(init=c(rep(0., ncol(data$X)),
                                rep(1., ncol(data$Z)),
                                rep(0., ncol(data$X))),
                     prior=list(mean=rep(0., ncol(data$Z)+2*ncol(data$X)),
                            prec=diag(0.001, ncol(data$Z)+2*ncol(data$X))))
                   )

src <- '
List list(arg1), beta=list["beta"], mu=list["mu"],
theta=list["theta"];

return theta["init"];
'

check1 <- cxxfunction(signature(arg1="list"), src, #plugin="Rcpp")
                       plugin="RcppEigen")

I get...
In file included from 
/opt/local/lib64/R/library/RcppEigen/include/RcppEigenForward.h:31,
                  from 
/opt/local/lib64/R/library/RcppEigen/include/RcppEigen.h:25,
                  from file7289313ed735.cpp:3:
/opt/local/include/Eigen/CholmodSupport:9:23: error: cholmod.h: No such 
file or directory
make: *** [file7289313ed735.o] Error 1

ERROR(s) during compilation: source code errors or compiler 
configuration errors!

Program source:
   1:
   2: // includes from the plugin
   3: #include <RcppEigen.h>
   4: #include <Rcpp.h>
   5:
   6:
   7: #ifndef BEGIN_RCPP
   8: #define BEGIN_RCPP
   9: #endif
  10:
  11: #ifndef END_RCPP
  12: #define END_RCPP
  13: #endif
  14:
  15: using namespace Rcpp;
  16:
  17:
  18: // user includes
  19:
  20:
  21: // declarations
  22: extern "C" {
  23: SEXP file7289313ed735( SEXP arg1) ;
  24: }
  25:
  26: // definition
  27:
  28: SEXP file7289313ed735( SEXP arg1 ){
  29: BEGIN_RCPP
  30:
  31: List list(arg1), beta=list["beta"], mu=list["mu"],
  32: theta=list["theta"];
  33:
  34: return theta["init"];
  35:
  36: END_RCPP
  37: }
  38:
  39:
Error in compileCode(f, code, language = language, verbose = verbose) :
   Compilation ERROR, function(s)/method(s) not created! In file 
included from 
/opt/local/lib64/R/library/RcppEigen/include/RcppEigenForward.h:31,
                  from 
/opt/local/lib64/R/library/RcppEigen/include/RcppEigen.h:25,
                  from file7289313ed735.cpp:3:
/opt/local/include/Eigen/CholmodSupport:9:23: error: cholmod.h: No such 
file or directory
make: *** [file7289313ed735.o] Error 1
In addition: Warning message:
running command '/opt/local/lib64/R/bin/R CMD SHLIB file7289313ed735.cpp 
2> file7289313ed735.cpp.err.txt' had status 1

So, I'm wondering...  Where does RcppEigen expect to see cholmod.h?
Perhaps, I should re-install RcppEigen from source rather than from
CRAN.  Or possibly install Suitesparse from source in either
/usr/local, or preferably, /opt/local?  What works for other?  Thanks

Compiler Settings:
CC="gcc"
CFLAGS="-g"
CXX="g++"
CXXFLAGS="-g"
CPP=""
CPPFLAGS="-I/opt/local/include"
LDFLAGS="-L/opt/local/lib64 -Wl,-rpath -Wl,/opt/local/lib64"
LIBS=""
PKG_CONFIG_PATH="/opt/local/lib64/pkgconfig"
F77="gfortran"
FFLAGS="-g -ff2c"
FC="gfortran"
FCFLAGS=""

sessionInfo()
R version 2.14.2 (2012-02-29)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
  [1] LC_CTYPE=en_US.ISO8859-1       LC_NUMERIC=C
  [3] LC_TIME=en_US.ISO8859-1        LC_COLLATE=en_US.ISO8859-1
  [5] LC_MONETARY=en_US.ISO8859-1    LC_MESSAGES=en_US.ISO8859-1
  [7] LC_PAPER=C                     LC_NAME=C
  [9] LC_ADDRESS=C                   LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.ISO8859-1 LC_IDENTIFICATION=C

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
[1] RcppEigen_0.2.0 Rcpp_0.9.10     inline_0.3.8

loaded via a namespace (and not attached):
[1] compiler_2.14.2 grid_2.14.2     lattice_0.20-6  Matrix_1.0-5
[5] tools_2.14.2

yum install suitesparse
Loaded plugins: auto-update-debuginfo, refresh-packagekit, rhnplugin
Setting up Install Process
Package suitesparse-3.4.0-2.el6.x86_64 already installed and latest version
Nothing to do

-- 
Rodney Sparapani, PhD  Center for Patient Care and Outcomes Research
Sr. Biostatistician               http://www.mcw.edu/pcor
4 wheels good, 2 wheels better!   Medical College of Wisconsin (MCW)
WWLD?:  What Would Lombardi Do?   Milwaukee, WI, USA


More information about the Rcpp-devel mailing list