[Rcpp-devel] r-forge error: undefined symbol: zgetri_
Le 20/08/10 07:36, baptiste auguie a ?crit :
Hi, My Makevars contains the following line, ## Use the R_HOME indirection to support installations of multiple R version PKG_LIBS = $(shell $(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()" ) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS)
That looks ok.
I can't R CMD INSTALL your package now because of something else. Some
collate issue of the R files, is this a roxygen issue by any chance ?
But the compile step -- apart from some minor problems I'm sure you'll
fix -- seem fine :
$ R CMD INSTALL cda
* installing to library ?/Library/Frameworks/R.framework/Resources/library?
* installing *source* package ?cda? ...
** libs
*** arch - i386
g++ -arch i386 -I/Library/Frameworks/R.framework/Resources/include
-I/Library/Frameworks/R.framework/Resources/include/i386
-I/usr/local/include
-I"/Library/Frameworks/R.framework/Resources/library/Rcpp/include"
-I"/Library/Frameworks/R.framework/Resources/library/RcppArmadillo/include"
-fPIC -g -O3 -Wall -pipe -c cda.cpp -o cda.o
cda.cpp: In function ?int progress_bar(double, double)?:
cda.cpp:36: warning: no return statement in function returning non-void
cda.cpp: In function ?Rcpp::List linearExtinction(const arma::mat&,
const arma::cx_mat&, double)?:
cda.cpp:285: warning: unused variable ?pi?
cda.cpp: In function ?int progress_bar(double, double)?:
cda.cpp:36: warning: control reaches end of non-void function
g++ -arch i386 -dynamiclib -Wl,-headerpad_max_install_names -undefined
dynamic_lookup -single_module -multiply_defined suppress
-L/usr/local/lib -o cda.so cda.o
/Library/Frameworks/R.framework/Versions/2.12/Resources/library/Rcpp/lib/i386/libRcpp.a
-L/Library/Frameworks/R.framework/Resources/lib/i386 -lRlapack
-L/Library/Frameworks/R.framework/Resources/lib/i386 -lRblas -lgfortran
-F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework
-Wl,CoreFoundation
installation dans
/Library/Frameworks/R.framework/Resources/library/cda/libs/i386
*** arch - x86_64
g++ -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include
-I/Library/Frameworks/R.framework/Resources/include/x86_64
-I/usr/local/include
-I"/Library/Frameworks/R.framework/Resources/library/Rcpp/include"
-I"/Library/Frameworks/R.framework/Resources/library/RcppArmadillo/include"
-fPIC -g -O3 -Wall -pipe -c cda.cpp -o cda.o
cda.cpp: In function ?int progress_bar(double, double)?:
cda.cpp:36: warning: no return statement in function returning non-void
cda.cpp: In function ?Rcpp::List linearExtinction(const arma::mat&,
const arma::cx_mat&, double)?:
cda.cpp:285: warning: unused variable ?pi?
cda.cpp: In function ?int progress_bar(double, double)?:
cda.cpp:36: warning: control reaches end of non-void function
g++ -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined
dynamic_lookup -single_module -multiply_defined suppress
-L/usr/local/lib -o cda.so cda.o
/Library/Frameworks/R.framework/Versions/2.12/Resources/library/Rcpp/lib/x86_64/libRcpp.a
-L/Library/Frameworks/R.framework/Resources/lib/x86_64 -lRlapack
-L/Library/Frameworks/R.framework/Resources/lib/x86_64 -lRblas
-lgfortran -F/Library/Frameworks/R.framework/.. -framework R
-Wl,-framework -Wl,CoreFoundation
installation dans
/Library/Frameworks/R.framework/Resources/library/cda/libs/x86_64
** R
Error in .install_package_code_files(".", instdir) :
les fichiers dans '/Users/romain/svn/photonics/pkg/cda/R' sont manquants
dans le champ 'Collate' :
povray.r
ERROR: unable to collate files for package ?cda?
* removing ?/Library/Frameworks/R.framework/Resources/library/cda?
* restoring previous ?/Library/Frameworks/R.framework/Resources/library/cda?
which I obviously took from somewhere, perhaps automatically generated from package.skeleton, I don't remember.
Probably from RcppArmadillo.package.skeleton
It's worked for me on two different machines (both Macs, though). Best regards, baptiste On 19 August 2010 23:50, Douglas Bates<bates at stat.wisc.edu> wrote:
On Thu, Aug 19, 2010 at 3:06 PM, baptiste auguie <baptiste.auguie at googlemail.com> wrote:
Dear all, I'm stumped by this error for my cda package on r-forge: Error in dyn.load(file, DLLpath = DLLpath, ...) : unable to load shared library '/tmp/Rinst2710053821/cda/libs/cda.so': /tmp/Rinst2710053821/cda/libs/cda.so: undefined symbol: zgetri_ https://r-forge.r-project.org/R/?group_id=160&log=build_src&pkg=cda&flavor=patched I don't have a clue what this means --- is this an incorrect dependency, an error in my C++ code, a known problem with r-forge, something I should have read in a vignette / manual ... ? It compiles fine on my machine (Mac OS 10.6). The package uses RcppArmadillo.
The error means that there is a reference to one of the Lapack functions, zgetri, which forms the inverse of a complex matrix using its triangular factorization, and the symbol could not be found. What does your cda/src/Makevars file contain?
Romain Francois Professional R Enthusiast +33(0) 6 28 91 30 30 http://romainfrancois.blog.free.fr |- http://bit.ly/bzoWrs : Rcpp svn revision 2000 |- http://bit.ly/b8VNE2 : Rcpp at LondonR, oct 5th `- http://bit.ly/aAyra4 : highlight 0.2-2