Installing and compiling C code for R-windows

2 messages Options
Embed this post
Permalink
Hartley, Andrew

Installing and compiling C code for R-windows

Reply Threaded More More options
Print post
Permalink
Hi r-devers,

This is the first time I've tried to install a package from source on
Windows, so please bear with me. I'm trying to install a package written
(and tested) by a colleague in C for R on linux, and I am trying to
install it on windows following the directions here -
http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset
and here - http://www.murdoch-sutherland.com/Rtools/

I installed Rtools (but not InnoSetup or LaTeX because of permissions
problems on my PC, although I don't think they are essential). I checked
my environment variables are pointing to the correct tools, and then I
ran the following:

R CMD INSTALL --library="C:/R/library" --no-chm PP

The package is called PP, and contains the following files:
>ls -R PP
PP:
DESCRIPTION  R  man  src  svn-commit.tmp~

PP/R:
PP.R

PP/man:
PP.Rd             pp.get.longs.Rd  pp.ppw.Rd    pp.strip.extra.Rd
pp.close.file.Rd  pp.open.file.Rd  pp.print.Rd  pp.write.Rd
pp.get.lats.Rd    pp.ppa.Rd        pp.read.Rd   tmp

PP/src:
PP.c  PP.o  PP.so  makefile.old

The result is (based on my limited knowledge) quite promising, but it
seems to be unable to link libraries. Here's what I get:

* Installing *source* package 'PP' ...
** libs
  making DLL ...
gcc -shared -s -o PP.dll tmp.def PP.o -LC:/PROGRA~1/R/R-29~1.2/bin -lR
Cannot export SwapEndian: symbol not found
Cannot export close_file_c: symbol not found
Cannot export open_file_c: symbol not found
..... Etc ....

I don't have any experience compiling C code, so I'm a bit stumped. Do I
need to override the default gcc settings by editing the makefile? Or
have I missed something more obvious? Please let me know if you need any
additional info.

Kind regards,
Andy



        [[alternative HTML version deleted]]

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Prof Brian Ripley

Re: Installing and compiling C code for R-windows

Reply Threaded More More options
Print post
Permalink
Having PP.o and PP.so will break things if (as I suspect) they are
from a different architecture.  Your colleague's testing should have
picked that up (R CMD check will warn you) but you can try deleting
them.

Also, I think you have ignored all the comments about not installing R
into a path with spaces in if you want to compile packages -- although
it usually works, we do not support it.

On Tue, 10 Nov 2009, Hartley, Andrew wrote:

> Hi r-devers,
>
> This is the first time I've tried to install a package from source on
> Windows, so please bear with me. I'm trying to install a package written
> (and tested) by a colleague in C for R on linux, and I am trying to
> install it on windows following the directions here -
> http://cran.r-project.org/doc/manuals/R-admin.html#The-Windows-toolset
> and here - http://www.murdoch-sutherland.com/Rtools/
>
> I installed Rtools (but not InnoSetup or LaTeX because of permissions
> problems on my PC, although I don't think they are essential). I checked
> my environment variables are pointing to the correct tools, and then I
> ran the following:
>
> R CMD INSTALL --library="C:/R/library" --no-chm PP

--no-chm is obsolete: are you perchance not using a current version of
R (see the posting guide)?

> The package is called PP, and contains the following files:
>> ls -R PP
> PP:
> DESCRIPTION  R  man  src  svn-commit.tmp~
>
> PP/R:
> PP.R
>
> PP/man:
> PP.Rd             pp.get.longs.Rd  pp.ppw.Rd    pp.strip.extra.Rd
> pp.close.file.Rd  pp.open.file.Rd  pp.print.Rd  pp.write.Rd
> pp.get.lats.Rd    pp.ppa.Rd        pp.read.Rd   tmp
>
> PP/src:
> PP.c  PP.o  PP.so  makefile.old
>
> The result is (based on my limited knowledge) quite promising, but it
> seems to be unable to link libraries. Here's what I get:
>
> * Installing *source* package 'PP' ...
> ** libs
>  making DLL ...

The hint is here: there is no sign that PP.c was compiled.

> gcc -shared -s -o PP.dll tmp.def PP.o -LC:/PROGRA~1/R/R-29~1.2/bin -lR
> Cannot export SwapEndian: symbol not found
> Cannot export close_file_c: symbol not found
> Cannot export open_file_c: symbol not found
> ..... Etc ....
>
> I don't have any experience compiling C code, so I'm a bit stumped. Do I
> need to override the default gcc settings by editing the makefile? Or
> have I missed something more obvious? Please let me know if you need any
> additional info.
>
> Kind regards,
> Andy
>
>
>
> [[alternative HTML version deleted]]

--
Brian D. Ripley,                  [hidden email]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
[hidden email] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel