On 13 March 2020 at 14:17, Dirk Eddelbuettel wrote: | | On 13 March 2020 at 11:53, Zack McCaw wrote: | | Hello all, | | | | I am attempting to submit a package (https://github.com/zrmacc/Temporal) | | that uses RcppArmadillo. The package builds successfully locally (on Mac) | | and on Windows. However, when submitting to CRAN, it fails to build on | | Debian with the following error: | | | | Error: package or namespace load failed for ‘Temporal’ in dyn.load(file, | | DLLpath = DLLpath, ...): unable to load shared object | | ‘/srv/hornik/tmp/CRAN/Temporal.Rcheck/00LOCK-Temporal/00new/Temporal/libs/Temporal.so’:/srv/hornik/tmp/CRAN/Temporal.Rcheck/00LOCK-Temporal/00new/Temporal/libs/Temporal.so: | | undefined symbol: dgesvd_ | | | | I have ensured that the Makevars file is formatted as recommended by the | | RcppArmadillo.package.skeleton | | <https://cran.r-project.org/web/packages/RcppArmadillo/RcppArmadillo.pdf>() | | function. Specifically, it contains the following: | | | | CXX_STD = CXX11 | | PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) | | PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) | | | | Any help with understanding how to resolve the error on Debian would | | be greatly appreciated. | | Sort of the wrong forum. Please consider subscribing to the rcpp-devel list | and posting there.
But now that we are here I took a look, and you "almost" got it right. Your mistake was in using src/Makevars.in and not using a configure script to create src/Makevars. So it remained unused. You can tell: with your setting my box did g++ -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro \ -o Temporal.so MatrixOps.o RcppExports.o -L/usr/lib/R/lib -lR ie no linking the desired form! Where once fixed we see g++ -std=gnu++11 -Wl,-S -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions \ -Wl,-z,relro -o Temporal.so MatrixOps.o RcppExports.o \ -fopenmp -llapack -lblas -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR which has the link instruction. I send you a pull request with the simple fix. If you just the merge button you should be all set. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org ______________________________________________ R-package-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-package-devel