[Rcpp-devel] RcppArmadillo solve function, dyn.load error
Ayn Leslie-Cook
aynlc3 at uw.edu
Mon May 7 01:13:05 CEST 2012
Dirk,
thank you kindly - that works just as you say.
And also, thank you for all of the answers to Rcpp questions on
stackoverflow and elsewhere - they've been immensely helpful throughout
this project. Just about every time I have a question, you've already
answered it. :)
Many thanks,
ayn
On Sun, May 6, 2012 at 3:29 PM, Dirk Eddelbuettel <edd at debian.org> wrote:
>
> Ayn,
>
> On 6 May 2012 at 14:38, Ayn Leslie-Cook wrote:
> | Hi all,
> |
> | I'm a student at the University of Washington and my course project this
> spring
> | involves rewriting the 'svmpath' R package into C++ using Rcpp and
> | RccpArmadillo. Everything runs beautifully until I try to include the
> | function below:
> |
> | vec solveKstar(mat Kstar){
> | vec onestar = ones<vec>(Kstar.n_cols);
> | onestar[0]=0;
> |
>
> | vec solution;
> |
>
> | solution=solve(trimatu(Kstar),onestar);
> | return solution;
> | }
> |
> | If I run R CMD INSTALL on my package removing the call to 'solve'
> everything
> | runs fine, but if I included the call to 'solve' then the R CMD INSTALL
> input
> | is
> |
> |
> | // all the typical output
> |
> | * installing to library ‘/net/home/aynlc3/Rlib’
> | * installing *source* package ‘aynSVMpath’ ...
> | ** libs
> | g++ -I/usr/share/R/include -DNDEBUG
> -I"/net/home/aynlc3/Rlib/Rcpp/include"
> | -I"/net/home/aynlc3/Rlib/RcppArmadillo/include" -fpic -O3 -pipe -g
> -c
> | aynSVMpath.cpp -o aynSVMpath.o
> | g++ -I/usr/share/R/include -DNDEBUG
> -I"/net/home/aynlc3/Rlib/Rcpp/include"
> | -I"/net/home/aynlc3/Rlib/RcppArmadillo/include" -fpic -O3 -pipe -g
> -c
> | svmHelpers.cpp -o svmHelpers.o
> | g++ -shared -o aynSVMpath.so aynSVMpath.o initializations.o svmHelpers.o
> | usetFunctions.o -L/net/home/aynlc3/Rlib/Rcpp/lib -lRcpp
> -Wl,-rpath,/net/home/
> | aynlc3/Rlib/Rcpp/lib -L/usr/lib/R/lib -lR
> | installing to /net/home/aynlc3/Rlib/aynSVMpath/libs
>
> Your src/Makevars is insufficient -- use something like
>
> PKG_LIBS= `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` $(LAPACK_LIBS)
> $(BLAS_LIBS) $(FLIBS)
>
> so that you link against LAPACK and BLAS as well.
>
> | ** R
> | ** preparing package for lazy loading
> | ** help
> | *** installing help indices
> | ** building package indices
> | ** testing if installed package can be loaded
> |
> | // then
> |
> | Error in dyn.load(file, DLLpath = DLLpath, ...) :
> | unable to load shared object '/net/home/aynlc3/Rlib/aynSVMpath/libs/
> | aynSVMpath.so':
> | /net/home/aynlc3/Rlib/aynSVMpath/libs/aynSVMpath.so: undefined symbol:
> | dtrtrs_
> |
> |
> | If I change 3rd and 4th lines of the 'solveKstar' function to:
> |
> | vec solution;
> |
>
> |
> | solution=solve(Kstar,onestar); // removing the call to 'trimatu'
> |
> | the R CMD INSTALL output has the same typical output above, but with the
> | following change to the error
> |
> | Error in dyn.load(file, DLLpath = DLLpath, ...) :
> | unable to load shared object '/net/home/aynlc3/Rlib/aynSVMpath/libs/
> | aynSVMpath.so':
> | /net/home/aynlc3/Rlib/aynSVMpath/libs/aynSVMpath.so: undefined symbol:
> | dgels_
> |
> |
> | The symbols 'dtrtrs_' and 'dgels_' are not part of my code; from digging
> | online, I believe these are coming from the lapack library, but I'm not
> sure
> | how to proceed with that knowledge. Does anyone have any advice?
>
> Yes, once you link with LAPACK and BLAS you should be fine. Let us know if
> that works.
>
> Dirk
>
> | Also, if relevant, I'm running R 2.15.0, Rcpp_0.9.10 and
> | RcppArmadillo_0.3.0.2 on mosix.
> |
> | Many thanks,
> |
> | Ayn
> |
> |
> |
> | ----------------------------------------------------------------------
> | _______________________________________________
> | 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
> --
> R/Finance 2012 Conference on May 11 and 12, 2012 at UIC in Chicago, IL
> See agenda, registration details and more at http://www.RinFinance.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20120506/32d0e671/attachment-0001.html>
More information about the Rcpp-devel
mailing list