[Rcpp-devel] Advice on installing CHOLMOD/Suitesparse

Douglas Bates bates at stat.wisc.edu
Wed Aug 29 23:55:22 CEST 2012


I just checked the results page on
http://cran.r-project.org/package=RcppEigen and the package doesn't
compile solaris-sparc and solaris-ix86 with the Sun compilers (which I
believe are very old, predating modern C++) and doesn't compile on
r-oldrel-macosx-ix86 but that is due to a compiler error in yet
another very old compiler.  It seems to have compiled and passed its
checks on r-release-macosx-ix86 and I think that is now using the
clang compiler.

On Wed, Aug 29, 2012 at 4:43 PM, Douglas Bates <bates at stat.wisc.edu> wrote:
> On Wed, Aug 29, 2012 at 4:42 PM, Douglas Bates <bates at stat.wisc.edu> wrote:
>> On Wed, Aug 29, 2012 at 4:32 PM, Rodney Sparapani <rsparapa at mcw.edu> wrote:
>>> 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
>
> You should not need to have Suitesparse installed.  All the
> Suitesparse code that is used in RcppEigen is included in the Matrix
> package.
>
>>> 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
>>
>> Perhaps you have an out-of-date version of the RcppEigen package (or
>> maybe the Mac version hasn't been built or ...).  In any case
>> RcppEigenForward should include RcppEigenCholmod.h, not cholmod.h and
>> the correct version would be at
>> /opt/local/lib64/R/library/RcppEigen/include/RcppEigenCholmod.h
>>
>>> 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
>>> _______________________________________________
>>> Rcpp-devel mailing list
>>> Rcpp-devel at lists.r-forge.r-project.org
>>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


More information about the Rcpp-devel mailing list