Problem after installation

Robert Graham Merkel rgmerk@mira.net (Robert Graham Merkel)
Tue, 6 Mar 2001 10:32:41 +1100


Markus Popp writes:
 > Hi!
 > 
 > First of all ... Linux is quite new to me and I hope the cause of my problem 
 > isn't rediculous.
 > 
 > The installation of v. 1.4.9 seemed to work fine but when I tried to start 
 > the file /usr/bin/gnucash (with both normal user and root) I got a message 
 > which said 'gnucash: error while loading shared libraries: 
 > /usr/lib/libguile.so.9: undefined symbol: qt_error'.
 > 
 > Do you have an idea what could be wrong and how the problem could be solved? 
 > Please let me know ;-). Thanks in advance!

Yep, we have a pretty good idea of what's wrong, but exactly how to
fix it depends on which distribution you are using.  I'm not exactly
sure how familiar you are with computers, so the explanation I'm about
to give you may be incomprehensible, tedious, or both.  If so, I
apologise.

There are many things that a program does that are shared with many
other programs - for instance, it would be silly for programmers to
rewrite a set of instructions to put some text on the screen for every
single program!  Therefore, there are many collections of common
routines for purposes like this available, and for obvious reasons are
called "libraries".

Now, there are two ways of combining libraries with the application's
unique code.  One is during the translation process from what
programmers write the code in, to what the computer understands
directly, building a "binary" with *everything* it needs to do its job
already included.  This is nice and simple, making the binary
self-contained.  However, this means that every program running on
your computer keeps its own copy of the libraries it needs.  Now, if
you have many programs that use virtually the same set of libraries,
in effect you fill your hard drive with hundreds of copies of the same
library embedded in each program.  Additionally, when you run the
programs large chunks of RAM get taken up with identical libraries,
leaving less room for your own data.

So, what's the solution to this?  Linux, as well as most other modern
operating systems, lets you set things up so that the library is
combined with the program when the program *runs*.  Only one copy of
the library sits on your hard disk, and only one copy is loaded into
memory at any one time (programs can happily share libraries).  These
are called dynamic libraries.  Windows has a similar concept, called
DLL's (which were horribly inferior last time I had anything to do
with them, but . . . )
The only difficulty with this if a library that a program needs isn't
on your system.  If this occurs, you have to locate the appropriate
library and install it as well.

In your case, you do not have libqthreads installed.  This library is
part of guile 1.4, so locate guile 1.4 for your distribution (redhat,
SuSE, whatever it is that you have), and install that.  If you are
lucky, it will be on the CD you got your distribution from.  If not,
you may have to locate it from elsewhere.

If you post a follow-up to the list telling us which distribution you
are running, and which version, we may be able to tell you exactly
where to download the library from.

------------------------------------------------------------
Robert Merkel	                           rgmerk@mira.net

<telsa> I left my client on #gtk+ overnight and there was nothing 
in scrollback at all except quit/rejoins.
<bighead> telsa: well its been that for, I think 3 days now 
(ever since started coming back on IRC)
<telsa> Clearly they are busy implementing telepathy, 
and dog-fooding it. :) 
------------------------------------------------------------