[R] linking other C++ libraries
Sundar Dorai-Raj
sundar.dorai-raj at pdf.com
Thu Feb 26 15:43:54 CET 2004
Samuel Kemp wrote:
> Hi,
>
> I have written a little C++ program, which uses a third party library
> called ANN (approximate nearest neighbours)....
>
> #include "/home/sekemp/ann_0.2/include/ANN/ANN.h"
>
> I have tried R CMD SHLIB ann.h myProgram.cc, although this compiles when
> I load it into R I get the following message..
>
> dyn.load("/home/sekemp/ann_0.2/ann.so")
> Error in dyn.load(x, as.logical(local), as.logical(now)) :
> unable to load shared library "/home/sekemp/ann_0.2/GammaTest.so":
> /home/sekemp/ann_0.2/GammaTest.so: undefined symbol:
> _ZN10ANNkd_treeC1EPPdiii12ANNsplitRule
>
> I get the same error when I dyn.load the myProgram.so aswell.
>
> There is nothing wrong with the ann library as I have used it directly
> in C++ using the compiler-linker thingy....
>
> g++ myProgram.cc -I/home/sekemp/ann_0.2/include
> -L/home/sekemp/ann_0.2/lib -lANN
>
> Does anyone have any ideas?
>
Looks like C++ name mangling. Did you wrap your code in extern "C" {}?
Regards,
Sundar
More information about the R-help
mailing list