I am attempting to bring R-3.0.2 functionality into a project with a very
large C++ codebase.  The existing codebase already has a LENGTH function
defined.  R also defines a LENGTH function.

I first compiled R as a shared library and linked it into this existing
codebase, along with RInside. When I run a parseEvalQ with a linear model
command it will stack dump.  Looking at the backtrace, what is happening is
that line 51 of lm.c is executing:

if(n) ny = LENGTH(y)/n;  /* n x ny, or a vector */

However, the LENGTH call is getting routed into our internal codebase.
 This causes a stack dump.

I then tried compiling R as a static library.  After that I couldn't even
compile my existing code because it flags the issue right off the bat:

... error: declaration of C function 'int LENGTH(const ... *)' conflicts
with
... /r/lib64/R/include/Rinternals.h:435: error: previous declaration 'int
LENGTH(SEXPREC*)' here

It is not possible to remove/rename the LENGTH function from the existing
codebase.  Any help would be appreciated in resolving this.

Thanks.

        [[alternative HTML version deleted]]

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

Reply via email to