[R] Problems with installing R packages from source and running C++ in R, even on fresh R installation
Duncan Murdoch
murdoch@dunc@n @end|ng |rom gm@||@com
Wed Aug 30 21:10:28 CEST 2023
On 30/08/2023 2:59 p.m., Ivan Krylov wrote:
> On Wed, 30 Aug 2023 16:31:20 +0000
> Christophe Bousquet <chr_bousquet using protonmail.com> wrote:
>
>> So, yes, it seems possible for R to localize paths related to
>> Rtools... But then, I really do not get where things go wrong...
>
> When installing packages containing code to compile, R eventually calls
> R CMD SHLIB. Same thing happens with inline C++: it gets stored in a
> temporary file, compiled into a *.dll using R CMD SHLIB and then loaded
> using dyn.load().
>
> Write the following into a file named hello.c:
>
> #include <R.h>
> #include <Rinternals.h>
> SEXP hello(void) {
> SEXP ret = PROTECT(allocVector(STRSXP, 1));
> SET_STRING_ELT(ret, 0, mkChar("hello"));
> UNPROTECT(1);
> return ret;
> }
>
> From within R, setwd() to the directory containing hello.c and run:
>
> tools::Rcmd('SHLIB -n hello.c')
> tools::Rcmd('SHLIB hello.c')
>
> What do the commands print? Does the second command fail?
>
> (Let's Cc: R-help using r-project.org in case people with more experience
> debugging Windows problems have a better idea what's going on.)
>
It sounds exactly as though Rtools files aren't on the path that's in
effect when R starts. That's probably the one stored in the registry.
In the old days it was set in the System app in the Windows Control
Panel under "Edit the system environment variables". I don't know if
that's still true.
Duncan Murdoch
More information about the R-help
mailing list