[Rd] Problems compiling C code on windows

Victor Trevino virctoalgn at gmail.com
Wed Apr 27 15:27:46 CEST 2005

Hi all,


I can't get my C routines running on a windows box. I have no problems at
all in Linux.


On windows, I have installed cygwin and the compilation works well but once
I execute "dyn.load(.)" it hangs whatever I use C/C++ interfaces.


In Linux it works wonderful but I need to get this code running on windows

I know that the problem should be something with the dll generation/linkage
in windows but I can't figure out.


As a matter of test I did the following C code:


#include <R.h>

#include <Rinternals.h>

SEXP thisisatest(SEXP);

SEXP thisisatest(SEXP a)


            long int i;

            if (!isReal(a)) printf("Vector should be double.\n");

            for (i=LENGTH(a)-1; i >=0; i--) {

                        REAL(a)[i] = REAL(a)[i] + 1;


            return (a);





Linux output:

R CMD SHLIB thisisthetest.c

gcc -I/usr/lib/R/include  -I/usr/local/include -D__NO_MATH_INLINES -mieee-fp
-fPIC  -O2 -g -pipe -march=i386 -mcpu=i686 -c thisisthetest.c -o

g++ -shared -L/usr/local/lib -o thisisthetest.so thisisthetest.o   


In R:

> dyn.load("thisisthetest.so")

> .Call("thisisatest",5)

[1] 6







Windows output:

L:\R>Rcmd SHLIB thisisthetest.c

making thisisthetest.d from thisisthetest.c

gcc   -IC:/PROGRA~1/R/rw2001/include -Wall -O2   -c thisisthetest.c -o

ar cr thisisthetest.a thisisthetest.o

ranlib thisisthetest.a

gcc  --shared -s  -o thisisthetest.dll thisisthetest.def thisisthetest.a
-LC:/PROGRA~1/R/rw2001/src/gnuwin32  -lg2c -lR


In R:

> dyn.load("thisisthetest.dll")

 [[ IT HANGS ]]




I have tried different combinations in paths (for library search) and
compiling inside cygwin. no success. 


Any comments are very very very welcome.



Thanks !



	[[alternative HTML version deleted]]

More information about the R-devel mailing list