Obviously I don't *really* know what I'm
doing, or even *sort of* know what I'm
doing.  But that never stopped me before.

Here is hopefully enough breadcrumbs to
help someone, or even all of us.


I've reinstalled RInside so that I am
starting with the original Makefile.win

*)  There is an extraneous "n" on the first
line (first character) of Makefile.win -- 'make'
doesn't like that.

*)  I need to comment out the command setting
R_HOME and set it in DOS instead.

*)  The next problem is two instances each of:

there is no package called [Rcpp, RInside]

This is because .libPaths() is only finding
the main library and not the one where the
installed packages go.

This is diagnosed by adding a line to Makefile.win:

Rlibpaths := $(shell echo '.libPaths()' | $(R_HOME)/bin/R $(R_ARCH) --vanilla --slave)

Adding a line to the checkR task:

echo $(Rlibpaths)

And then doing:

make checkR -f Makefile.win

This is the same in 32-bit and 64-bit.

This problem can be remedied by setting the
R_LIBS_USER environment variable.  You can
see what that is with the R command:

Sys.getenv('R_LIBS_USER')


*) Now there is some progress, but not much.

It compiles:
rinside_callbacks0
rinside_module_sample0
rinside_sample0

And gets an error on rinside_sample1:

reopening rinside_sample1.exe: Permission denied

However the three that did compile don't run.  They
all have the error message:

The program can't start because R.dll is missing from
your computer.  Try reinstalling the program to fix
this problem.

This is using Rtools2.14 and R 2.14.1 with
RInside_0.2.6 Rcpp_0.9.9

Pat

On 14/02/2012 17:53, Dirk Eddelbuettel wrote:

Hi Pat,

On 14 February 2012 at 17:43, Patrick Burns wrote:
| Good point about the Rtools version.  I started
| with 2.13, but I get the same thing with 2.14.
|
| Here are the key changes that I made to Makefile.win:
|
| RCPPINCL := -IC:/Users/pat/Documents/R/win-library/2.14/Rcpp/include
| RCPPLIBS :=
| C:/Users/pat/Documents/R/win-library/2.14/Rcpp/libs/i386/Rcpp.dll
|
| RINSIDEINCL := -IC:/Users/pat/Documents/R/win-library/2.14/RInside/include
| RINSIDELIBS :=
| C:/Users/pat/Documents/R/win-library/2.14/RInside/libs/i386/libRInside.dll

That's not quite right, is it?  What do (quoting from 
examples/standard/Makefile.win)
these do:

## include headers and libraries for RInside embedding classes
RINSIDEINCL :=          $(shell echo 'RInside:::CxxFlags()' | $(R_HOME)/bin/R 
$(R_ARCH) --vanilla --slave)
RINSIDELIBS :=          $(shell echo 'RInside:::LdFlags()'  | $(R_HOME)/bin/R 
$(R_ARCH) --vanilla --slave)

| I then do:
|
| make -f Makefile.win
|
| I seem to have failed in my attempt to
| tell it where R lives -- I get a cygwin
| warning about MS-DOS style path, but I
| don't think that is really a problem.

R_HOME must be defined. You can get it from R, or hardcode it.

The single best start is to try

     cd examples/standard
     make -f Makefile.win

which should create 10+ executable. And you can borrow freely from that
Makefile.win which should work.

Lastly, the Cygwin thing is line noise which you can suppress by setting an
env var appropriately. This comes from the newer Rtools.

| It then attempts the g++ command, gives
| the multiple definition statements, and:

Linking is still wrong then.

Dirk



--
Patrick Burns
[email protected]
http://www.burns-stat.com
http://www.portfolioprobe.com/blog
twitter: @portfolioprobe
_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to