On 14/02/2012 20:14, Dirk Eddelbuettel wrote:
On 14 February 2012 at 20:04, Patrick Burns wrote: | 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 don't know for sure what your are talking about. A common fix would be to send a diff. Could you do that?
This is Windows, remember -- perhaps there is a way of doing a diff, I don't know it. But the start of Makefile.win that I see out of the box is: n## -*- mode: makefile; tab-width: 8; -*- ## ## Simple Makefile for Windows Note the bizarre first character.
| *) I need to comment out the command setting | R_HOME and set it in DOS instead. Works for me in the Makefile.win | *) 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) I would recommend using ~/.Rprofile which strikes me as easier. | 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 Can you run rinside_sample0.exe ? | And gets an error on rinside_sample1: | | reopening rinside_sample1.exe: Permission denied Huh?
Agreed. That is the only indication of it being upset. But I renamed that file to try to make it do it last. Running it again there was no error -- everything compiled. Compiled for 32-bit. There is not an x64 subdirectory to 'lib' (as there is with 'libs') so nothing compiles.
| 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. Could that be a Win7 security setting or something like it?
That's an interesting idea. Anyone have ideas about testing it? Pat
| This is using Rtools2.14 and R 2.14.1 with | RInside_0.2.6 Rcpp_0.9.9 I think I used the same combination with success. Dirk | 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 | patr...@burns-stat.com | http://www.burns-stat.com | http://www.portfolioprobe.com/blog | twitter: @portfolioprobe
-- Patrick Burns patr...@burns-stat.com http://www.burns-stat.com http://www.portfolioprobe.com/blog twitter: @portfolioprobe _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel