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

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to