[Rd] Memory problems with a custom R package

Tom McCallum tom.mccallum at levelelimited.com
Tue Sep 12 12:39:41 CEST 2006


Hi everyone,

I have been attempting to build a very simple R package interfacing with  
some very simple C++ code.  Everything I try though results in the  
function working but on return it produces a memory error.  Here is the  
output:

***********OUTPUT***************************

> library(MyPackage)
> hello();

  *** caught segfault ***
address 0x3, cause 'memory not mapped'

**********END OUTPUT*************************

I have read that some time this occurs because it cannot find the function  
in the shared library but I have tested this theory with a simple text  
message and this is displayed but again the memory error occurs.

The C++ code has been reduced to the simplest possible:

*** helloworld.h

extern "C" void helloworld(void);

*** helloworld.cpp

#include <iostream>
#include "helloworld.h"

void helloworld(void) {
//	This was my test line that was displayed as described above.
//      std::cout << "My first R Package Test." << std::endl;
}

I also wrote an R wrapper called hello as follows:

*** helloworld.R

hello <- function()
{
  .Call("helloworld", PACKAGE="MyPackage");
}

The namespaces file (NAMESPACE) is as follows:

useDynLib(MyPackage)
export(hello)

I have compared mine against other package sources available that do the  
same thing and cannot find the key difference.

Thank you for your help in advance,

Tom




More information about the R-devel mailing list