[R] package compilation: including external libraries in windows compilation
Jonathan Lees
jonathan.lees at unc.edu
Fri Apr 25 15:34:30 CEST 2008
Dear R package developers:
I need help on getting a package compiled for windows.
I am trying to use definitions and routines from a
set of libraries in that are in LINUX under
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
but these are unavailable in windows.
I found that we can get these by including, in windows these includes:
#include <winsock2.h>
#include <io.h>
My problem is I do not know how to instruct the preprocessor to include
the linux .h files
when in linux and the windows one in windows.
I thought I found a solution online by using:
#if defined(Win32)
#include <winsock2.h>
#include <io.h>
#else
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#ifdef HAVE_BSD_NETWORKING
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
#endif
But I still get an error when these are compiled on the R-distribution.
I do not understand where I am supposed to set the Win32 flag so
that it will be ignored in LINUX but used in windows.
where is "Win32" "HAVE_UNISTD_H" and "HAVE_BSD_NETWORKING" set?
It seems that Makevars.win would be logical place, but
I do not see how to do this.
Thanks for any help.
Jonathan Lees
---------- Making package WINRPACK ------------
adding build stamp to DESCRIPTION
making DLL ...
making win2R.d from win2R.c
making win2asc.d from win2asc.c
gcc-sjlj -std=gnu99 -Id:/Rcompile/recent/R-26~1.2/include -O3 -Wall -c win2R.c -o win2R.o
win2R.c:21:24: error: sys/socket.h: No such file or directory
win2R.c:22:24: error: netinet/in.h: No such file or directory
win2R.c:23:23: error: arpa/inet.h: No such file or directory
win2R.c: In function 'read_data':
win2R.c:591: warning: implicit declaration of function 'ntohl'
win2R.c: In function 'read_one_sec':
win2R.c:723: warning: implicit declaration of function 'ntohs'
make[3]: *** [win2R.o] Error 1
make[2]: *** [srcDynlib] Error 2
make[1]: *** [all] Error 2
make: *** [pkg-WINRPACK] Error 2
*** Installation of WINRPACK failed ***
--
==========================================
Prof. Jonathan M. Lees
Department of Geological Sciences
CB #3315, Mitchell Hall
University of North Carolina
Chapel Hill, NC 27599-3315
(919) 962-0695
FAX (919) 966-4519
jonathan_lees at unc.edu
http://www.unc.edu/~leesj
More information about the R-help
mailing list