[Shapelib] Linker error with GCC?
Kyle Taylor
kyle.a.taylor at gmail.com
Mon Feb 7 19:06:57 EST 2011
Hey all,
I stumbled upon shapelib the other day and am really excited about the
project. It sounds like a handy lib. I'm trying to get a feel for it by
playing around with GCC. Trouble is, GCC (Fedora 14) is having trouble and
can't link against shapelib. shapelib was installed directly out of the YUM
repositories, and its sitting pretty in /usr/lib64/. Am I just looking over
something really dumb, or are other people having similar trouble?
Thanks,
Kyle
----------
$ gcc main.cc
/tmp/ccltpct4.o: In function `main':
main.cc:(.text+0x79): undefined reference to `SHPOpen'
collect2: ld returned 1 exit status
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.5.1/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla--enable-bootstrap
--enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada,lto --enable-plugin
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre
--enable-libgcj-multifile --enable-java-maintainer-mode
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib
--with-ppl --with-cloog --with-tune=generic --with-arch_32=i686
--build=x86_64-redhat-linux
Thread model: posix
gcc version 4.5.1 20100924 (Red Hat 4.5.1-4) (GCC)
$ ldconfig -p | grep libshp
libshp.so.1 (libc6,x86-64) => /usr/lib64/libshp.so.1
libshp.so (libc6,x86-64) => /usr/lib64/libshp.so
$ cat main.cc
#include <libshp/shapefil.h>
#include <stdioh.h>
int main(int argc, char *argv[])
{
char PATH[FILENAME_MAX_LEN];
SHPHandle shapefile;
/* read program argv[1] specifying shapefile */
if(argc < 2)
{ printf("%s requires a filepath argument to the .SHP file you
wish to analyse.\n", argv[0]); return -1; }
else
strncpy(PATH, argv[1], sizeof(PATH));
/* attempt to open shapefile */
if(!(shapefile = SHPOpen(PATH, "rb")))
{ printf("could not open %s for reading. Does the file exist?\n",
PATH); return -1; }
return 0;
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/shapelib/attachments/20110207/5d10051a/attachment.htm
More information about the Shapelib
mailing list