Re: glibtop compile



ryan <blackflag@blackflag.net> writes:

> I'm trying to compile glibtop 1.0.1 and during make it breaks because it
> cannot find popt-gnome.h ... does anyone know what this is from?

What's the exact error message you got? Which system?

> Also, in regards to gtk+-related libraries, is the version number
> consistent with the numbers contained in the actual .so files in
> /usr/local/lib? They don't appear to match up, but other configure
> scripts have found libs I've installed...

That's a really stupid thing some people do. They want to help so-called
"newbies" keeping track of which library belongs to which version of the
package.

This is really a stupid and bad thing as it breaks what is called
"binary compatibility" between certain library versions. If two versions
of a library are binary compatible this means that you can replace one
with each other and all your programs will run as if nothing has happened.
So you can safely replace any library with any binary compatible version
and you don't need to recompile all your programs.

LibGTop uses the so-called "libtool versioning scheme" to archive that
(read "Versioning" in libtool.info to learn more about this). This also
makes it possible to have both old and new versions of the same library
installed in your system and the dynamic linker knows which one to use
for any of your programs - even if they're not binary compatible.

Example:

Assume you have version X of library L installed and programs A and B
linked against that library.

Now you want to install program C which needs a newer version Y of
library L - but unfortunately is that version Y totally incomatible
to version X and your existing programs A and B have not yet been fixed
to support that newer version.

If you use libtool versioning for your library, this is no problem -
simply keep version X installed and install version Y as well. Now you
install a binary package of program C (which was compiled on another
machine without version X of library L so the linker correctly linked
it against version Y) and the run-time-linker (ld.so) will know that
it has to use version X for programs A and B and Y for program C.

Hope this helps,
-- 
Martin Baulig - martin@home-of-linux.org - http://www.home-of-linux.org



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