Re: libX11

From: Christian Holm Christensen <cholm_at_nbi.dk>
Date: Wed, 09 Mar 2005 19:11:12 +0100


Hi Balint,

On Wed, 2005-03-09 at 18:07 +0100, Balint Radics wrote:
> Hi,
>
> During installing Root 3.10/02 my Suse 8.0 cannot find the path to libX11
> even I tell to configure that --with-x11-libdir=/usr/X11R6/lib
>
> The result:
>
> hallgato_at_sztlab4:~/root> ./configure linux --with-x11-libdir=/usr/X11/lib/
> Configuring for linux
> Checking for libX11 ... no

Are you sure you have installed the XFree86 development package? You should have files (symbolic links really) like

        /usr/X11R6/lib/libX11.so

If you didn't you'll only have the runtime libraries

        /usr/X11R6/lib/libX11.so.4

(or something like that). If you do have the former file, something has gone very fishy on either your system or in ROOT :-(

Don't make the symbolic link yourself. If you do not have the symbolic link, you most probably do not have the headers either. Grab the appropriate RPM from you installation CD, DVD, mirror, or Floppy(!).

Note, that there's a difference between the runtime libraries - which generally has the version number somewhere in it's soname (search roottalk - I think there are several posts that explain sonames, etc.) - and development libraries - which in general is a symbolic link to _some_ runtime library, and does not have the version number in the soname.

The reason for this is one of flexibility - one may need to have various versions of a runtime library installed to accommodate various applications, but when one develops applications or the like, one wants to link to one specific version (generally the latest) of the library.

Using version numbers in sonames is generally a very good idea, as it avoids troubles stemming from incompatible API's.

It would be nice if CINT would allow one to load libraries that has a major and/or minor version attached to the end of the file name, like

        gSystem->Load("libX11.so.4")

Currently, CINT checks if the string passed ends in some sort of `loadable library ending' like dylib, so, sl, dll, a, or what not. It sould really check of the string _contains_ this, or check that the file is really a library (ELF on GNU/Linux, something else on other systems).

Note, that you can compile ROOT with the version number in the soname by passing the option `--enable-soversion' to the configure script. I highly recommend you do that.

Yours,

-- 
 ___  |  Christian Holm Christensen 
  |_| |  -------------------------------------------------------------
    | |  Address: Sankt Hansgade 23, 1. th.  Phone:  (+45) 35 35 96 91
     _|           DK-2200 Copenhagen N       Cell:   (+45) 24 61 85 91
    _|            Denmark                    Office: (+45) 353  25 404
 ____|   Email:   cholm_at_nbi.dk               Web:    www.nbi.dk/~cholm
 | |
Received on Wed Mar 09 2005 - 19:10:59 MET

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:05 MET