[R] Include C++ DLL, error in ...: C symbol name not in load table

From: Sascha Vieweg <saschaview_at_gmail.com>
Date: Wed, 20 Apr 2011 22:06:28 +0200 (CEST)


Hello R experts

I am googling and reading around, however, I can't get it working
(perhaps because I do not understand much C, however, I'll give it
a try). I am trying to include C++ code into an R routine, where the C++ code looks:

#include <iostream>
using namespace std;
void foo (double* x, double* y, double* out) {

         out[0] = x[0] + y[0];
}

Back in R, the command

R CMD SHLIB --preclean -o xplusy

works fine resulting in two new files, xplusy.o and xplusy.so. The wrapper in R is:

dyn.load("xplusy.so")
xplusy <- function(x, y){

   .C("foo", as.double(x), as.double(y), out=double(1))$out }
xplusy(1, 2)
dyn.unload("xplusy.so")

Now, dyn.load() works and xplusy also shows up in getLoadedDLLs(). However, when invoking the function, xplusy(1, 2), R complains:

Error in .C("foo", as.double(x), as.double(y), out = double(1)): C symbol name "foo" not in load table

I found some hints concerning Fortran code producing this error message, but no help concerning C code.

Any help tips?

Thanks, *S*

$. uname -a
Darwin * 10.7.3 Darwin Kernel Version 10.7.3[...]

$: c++ --version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666)
(dot 3)

platform       i386-apple-darwin9.8.0
arch           i386
os             darwin9.8.0
system         i386, darwin9.8.0
status
major          2
minor          12.2
year           2011
month          02
day            25
svn rev        54585
language       R

version.string R version 2.12.2 (2011-02-25)
-- 
Sascha Vieweg, saschaview_at_gmail.com

______________________________________________
R-help_at_r-project.org 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.
Received on Wed 20 Apr 2011 - 20:08:45 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 21 Apr 2011 - 20:00:31 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive