Re: [xslt] undefined reference to `xmlXPathContextSetCache'



2007/1/5, Jeroen Ruigrok/asmodai <asmodai in-nomine org>:
ELF shared libraries were never intended to have a so.N.M denominator, solely
a so.N one. So in the above I would sooner expect:

libxml2.a
libxml2.la (libtool specific file)
libxml2.so.8
libxml2.so.9
libxml2.so -> libxml2.so.9

You need to have a libxml2.so file, typically this is symbolically linked to
the latest installed shared library. If I remember my loading and linking
correctly ELF looks for the libxml2.so file for loading and linking.

Ok, so I created the symlink (and indeed you're right, since I know *nix OSes, there are always such symlinks) :

root myhost:/usr/local/lib # ln -s libxml2.*
libxml2.a         libxml2.la        libxml2.so.8.27   libxml2.so.9.0
root gages:/usr/local/lib # ln -s libxml2.so.9.0 libxml2.so
root gages :/usr/local/lib # ls -la |grep xml
-rw-r--r--   1 root  wheel  5284726 Jan  5 10:35 libxml2.a
-rwxr-xr-x   1 root  wheel      805 Jan  5 10:35 libxml2.la*
lrwxr-xr-x   1 root  wheel       14 Jan  5 13:52 libxml2.so @ -> libxml2.so.9.0
-rwxr-xr-x   1 root  wheel  2981560 Jan  5 10:35 libxml2.so.8.27*
-rwxr-xr-x   1 root  bin    1112822 Mar  1  2006 libxml2.so.9.0*
-rw-r--r--   1 root  wheel      219 Jan  5 10:35 xml2Conf.sh

Then again, ./configure, make clean, make, and same error :

nico myhost:/somefolder/libxslt-1.1.17 $ make
make  all-recursive
Making all in libxslt
Making all in libexslt
Making all in xsltproc
/bin/sh ../libtool --tag=CC --mode=link gcc  -g -O2 -Wall    -o xsltproc  xsltproc.o  ../libxslt/libxslt.la  ../libexslt/libexslt.la  -L/usr/local/lib -lxml2 -lz -lpthread -lm -L/usr/local/lib -lxml2 -lz -lpthread -lm -lm
gcc -g -O2 -Wall -o .libs/xsltproc xsltproc.o  -L/somefolder/libxslt-1.1.17/libxslt/.libs -L../libxslt/.libs -L/usr/local/lib -L../libexslt/.libs -lexslt -lxslt -lxml2 -lz -lpthread -lm -Wl,-rpath,/usr/local/lib
/usr/local/lib/libxml2.so.9.0: warning: strcpy() is almost always misused, please use strlcpy()
/somefolder/libxslt-1.1.17/libxslt/.libs/libxslt.so.2.17: warning: sprintf() is often misused, please use snprintf()
/usr/local/lib/libxml2.so.9.0: warning: strcat() is almost always misused, please use strlcat()
/somefolder/libxslt-1.1.17/libxslt/.libs/libxslt.so.2.17: undefined reference to `xmlModuleClose'
/somefolder/libxslt-1.1.17/libxslt/.libs/libxslt.so.2.17: undefined reference to `xmlModuleOpen'
/somefolder/libxslt- 1.1.17/libxslt/.libs/libxslt.so.2.17: undefined reference to `xmlModuleSymbol'
/somefolder/libxslt-1.1.17/libxslt/.libs/libxslt.so.2.17: undefined reference to `xmlXPathContextSetCache'
collect2: ld returned 1 exit status
*** Error code 1

Stop in /somefolder/libxslt-1.1.17/xsltproc (line 311 of Makefile).
*** Error code 1

Stop in /somefolder/libxslt-1.1.17 (line 445 of Makefile).
*** Error code 1

Stop in /somefolder/libxslt- 1.1.17 (line 274 of Makefile).
nico myhost:/somefolder/libxslt-1.1.17 $

Another point :

$ strings /somefolder/libxslt-1.1.17/libxslt/.libs/libxslt.so.2.17 | grep xmlModuleClose
xmlModuleClose

So I don't know if the presence of the string does prove anything, but ... ?

--
Nicolas Ecarnot

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]