On 21 December 2012 at 12:12, jea...@hushmail.com wrote: | hi, | | a quick question regarding a Rcpp function I wrote using an external library | (gretl) : | | with the help of a makefile (adapted from the convolution Rcpp example), the | code compiles just fine and turns into a shared object in linux (.so file) | | however, when I then try to load the newly created shared library into R using | dyn.load, I get the following error message: | | | dyn.load("/home/jean/Documents/code experiments/gretl/test2.so") | Error in dyn.load("/home/jean/Documents/code experiments/gretl/test2.so") : | unable to load shared object '/home/jean/Documents/code experiments/gretl/test2.so': | /home/jean/Documents/code experiments/gretl/test2.so: undefined symbol: _Z13kalman_smoothP7kalman_PP13gretl_matrix_S3_Pi | | | The undefined symbol is in fact (after c++ unmangling) kalman_smooth(kalman_*, | gretl_matrix_**, gretl_matrix_**, int*), a function from the gretl library | | Do you think the problem comes from the c++ mangling of gretl's C library or | is it rather linked to internals of gretl ?
I suspect you are doing something wrong, that is a standard linker error. It could be as easy as forgetting the extern "C" or something. The name wrangling happens because it is after all C++ and not C.. Look at the Rcpp + GSL examples for inspiration, or at other CRAN packages working with third-party C libraries. This works well. | many thanks for your help! We cannot help much more as you example is not reproducible. Dirk -- Dirk Eddelbuettel | e...@debian.org | http://dirk.eddelbuettel.com _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel