Hi

I managed to compile (and use) C code from R, but now I have to use C++ code.
After reading "Writing R extensions", I came up with the following
code, which compiles fine

-------------------
// emdL1_R.cc:

#include <time.h>
#include <stdio.h>
#include "emdL1.h"

extern "C"
{
  void emd_L1(
              double *H1, int *n1,
              double *H2, int *n2,
              int *Dims,
              double *e
              )
  {
    EmdL1 em;                   // EMD_L1 class

    e[0] = em.EmdDist( H1,H2, n1[0],n2[0], Dims[0]);                    // 2D 
EMD_L1

    printf("For 2D histograms,  EmdL1(h1,h2)=%lf\n", e[0]);
  }
}// extern "C"
-------------------
-------------------
Compilation started at Wed Nov 19 14:30:42

R CMD SHLIB emdL1.cpp emdL1_R.cc
g++ -I/usr/share/R/include      -fpic  -g -O2 -c emdL1.cpp -o emdL1.o
g++ -I/usr/share/R/include      -fpic  -g -O2 -c emdL1_R.cc -o emdL1_R.o
g++ -shared  -o emdL1.so emdL1.o emdL1_R.o   -L/usr/lib/R/lib -lR

Compilation finished at Wed Nov 19 14:30:44

Compilation started at Wed Nov 19 14:37:12

R CMD SHLIB emdL1_R.cc
g++ -shared  -o emdL1_R.so emdL1_R.o   -L/usr/lib/R/lib -lR

Compilation finished at Wed Nov 19 14:37:12
-------------------

 but when I want to load the resulting .so file (emdL1_R.so), I get
the following error message:

-------------------
> dyn.load("emdL1_R.so")
Error in dyn.load("emdL1_R.so") :
  unable to load shared library
'/home/rkrug/Documents/Projects/EMD/EmdL1_vs/emdL1_R.so':
  /home/rkrug/Documents/Projects/EMD/EmdL1_vs/emdL1_R.so: undefined
symbol: _ZN5EmdL1D1Ev
>
-------------------


The two other files (emdL1.h and emdL1.cpp) are in the following zip file:

http://vision.ucla.edu/~hbling/code/EmdL1_v2.zip


Any suggestions are welcome,

Rainer




-- 
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)

Centre of Excellence for Invasion Biology
Faculty of Science
Natural Sciences Building
Private Bag X1
University of Stellenbosch
Matieland 7602
South Africa

______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to