[Rd] RCMD SHLIB problem in 64 bits

Duncan Murdoch murdoch.duncan at gmail.com
Wed Oct 8 20:17:51 CEST 2014

On 08/10/2014, 12:57 PM, Qiao Kang wrote:
> I am trying to build a dll writen in C to be called by R.
> Interestingly, when I set the global environment variable PATH to be
> "c:\Rtools\bin;C:\Rtools\gcc-4.6.3;C:\Program Files\R\R-3.1.1\bin\*i386*;"
> and I typed "RCMD SHLIB Permutation.c" in Cygwin, the dll was compiled and
> I can sucessfully call functions after I had loaded it into 32 bits R via
> .Call.
> However,  now I want to run the same function in 64 bits R. I changed
> the global environment variable PATH to be
> "c:\Rtools\bin;C:\Rtools\gcc-4.6.3;C:\Program Files\R\R-3.1.1\bin\*x64*;",
> opened Cygwin again and typed "RCMD SHLIB Permutation.c" in Cygwin. Error
> message appeared on Cywin console.
> $ RCMD SHLIB Permutation.c
> gcc -m64 -shared -s -static-libgcc -o Permutation.dll tmp.def Permutation.o
> -Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64
> -Ld:/RCompile/CRANpkg/extralibs64/local/lib
> -LC:/PROGRA~1/R/R-31~1.1/bin/x64 -lR
> C:/PROGRA~1/R/R-31~1.1/bin/x64/R.dll: file not recognized:
> My version of R is the latest 3.1.1 and my Rtools is also the latest
> version 31
> I am not sure why this is happening and I have been struggled about this
> for two days.

This sounds related to a bug that is fixed in R-patched.  Some of the
build scripts use the bin/R or bin/Rscript executables; they are 32 bit

Could you please download a recent R-patched, and confirm that the fix
works for you?


Duncan Murdoch

More information about the R-devel mailing list