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

Re: [xml] Generating a correct xml2-config for use with --libs



On Thu, Jun 13, 2002 at 02:30:08PM +0100, Gary Pennington wrote:
> Stefan Kost wrote:
> 
> > Hi Gary,
> >
> > but libxml2 does networking (see nanoftp and the likes).
> >
> > Stefan 
> 
> I know, which is why libxml2 links with the appropriate libraries 
> (-lsocket etc). However, that doesn't mean that any application which 
> links with libxml2 must also link with the networking libraries.
> 
> For instance, if I have foo.c:
> 
> #include <libxml/parser.h>
> <blah>
> int
> main(void)
> {
>     xmlDocPtr doc = NULL;
>     doc = xmlNewDoc(BAD_CAST "1.0");
>     (void) printf("hello world\n");
>     <do things which are completely unrelated to networking>
>     return (0);
> }
> 
> And I compile it as:
> 
> cc -o foo foo.c -I/usr/local/libxml/include/libxml2 
> -R/usr/local/libxml/sparc/lib -L/usr/local/libxml/sparc/lib -lxml2
> 
> That will work. It's the job of the linker to work out the libxml2 uses 
> networking libraries and needs to also link -lsocket (etc) at runtime.

  xmlNewDoc can dereference the socket code. Moreover not all system
have shared library, some don't even have dynamic ones.

> i.e. the application is only dependant on lxml2, but the linker has 

  The application you shown may have to use the network. If there is
a catalog and the filename you gave is redirected to a network URL
libxml2 will use the ftp/http stack accordingly.

> worked out (correctly) that libxml2 in turn depends on a number of 
> libraries (e.g. libz, libsocket, etc..)

  Some linkers can't.

> As I said in my earlier mail, I find it hard to believe that you have to 
> specify a libraries dependant libraries when you link an application 
> with the library in order for it to work. What happens if you miss a 
> library out because you don't know about it?

  The make stops complaining about missing symbols. And honnestly
I prefer this to happen at compile time than at run-time !

Daniel

-- 
Daniel Veillard      | Red Hat Network https://rhn.redhat.com/
veillard redhat com  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/



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