Skip to content

ESRI Shapefile reader (help with dlls)

1 message · Nicholas Lewin-Koh

#
Hi,
I am working on a library of map functions for R and I have started
with code to read shapefiles (the format is not great but it is ubiquitous).
I am not a windows person, but where I am working I don't have access to
any UNIX machines easily. So here's the problem I wrote C code to read
the information out of the shapefile header and I compiled it using
the script given in Ripley and Veneables programming compliments for 
Cygwin tools. It seemed to work, however when I tried calling it from R
it didn't work (couldn't find the symbol).

here's what happend
_         
platform   Windows   
arch       x86       
os         Win32     
system     x86, Win32
status               
status.rev 0         
major      0         
minor      64.2      
year       1999      
month      July      
day        3         
language   R
Error in .C("SHPOpen", as.character(shpname), as.character(shxname), as.character(access),  : C/Fortran function not in load table
[1] FALSE
Am I doing something wrong when building the dll? here are the steps I used

gcc -mno-cygwin -O2 -c Sshpopen.c
echo LIBRARY Sshpopen > Sshpopen.def
echo EXPORTS >> Sshpopen.def
nm Sshpopen.o | \
sed -n "/^........ [BCDRT] _/s/^........ [BCDRT] _/ /p" \
gcc -mno-cygwin -mdll -Wl,--base-file,Sshpopen.b \
-o Sshpopen.dll Sshpopen.o
dlltool -k -D Sshpopen.dll -b Sshpopen.b -e Sshpopen.e -d Sshpopen.def
gcc -mno-cygwin -mdll -Wl,--base-file,Sshpopen.b \
-o Sshpopen.dll Sshpopen.e Sshpopen.o
dlltool -k -D Sshpopen.dll -b Sshpopen.b -e Sshpopen.e -d Sshpopen.def
gcc -mno-cygwin -mdll -o Sshpopen.dll Sshpopen.e Sshpopen.o
rm -f Sshpopen.b Sshpopen.e

Thanks for any insight

Nicholas
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._