On 27 Apr, Dmitry Yaitskov shouted:
-> Hi guys,
->
-> I dunno about rpms, but those who compile their own probably know that
-> there are some problems when linking with imlib, at least with 1.3 (I
-> don't remember about older versions)... the problem being that if you
-> link with imlib, you have to 'manually' add -ltiff -lgif etc. to the
-> command that links the final executable... because the shared imlib
-> library itself is linked *without* those other libraries that it
-> actually needs. That is, the command that creates the imlib so file
-> looks like this:
of course it doesn't.. because only linux supports libs linked to other
libs.. you have to link the APP (program) using imlib to libtiff,
libgif etc.
->
-> gcc -shared -Wl,-soname -Wl,libImlib.so.1 -o .libs/libImlib.so.1.3.0
-> cache.lo colors.lo load.lo misc.lo rend.lo utils.lo save.lo
->
-> whereas it should really look like:
->
-> gcc -shared -Wl,-soname -Wl,libImlib.so.1 -o .libs/libImlib.so.1.3.0
-> cache.lo colors.lo load.lo misc.lo rend.lo utils.lo save.lo -lpng
-> -ljpeg -lgif -ltiff -lz -lm
->
-> After wasting about 4 hours trying to figure out why the libs imlib
-> needs are not specified when it is linked I found out that the libtool
-> thing that is used to link imlib is broken when it comes to
-> inter-library dependencies. (Or at least I think that that's the
-> problem.) Here's a quote from libtool's own web page:
thew inter-lib dependanicies was disabled in libtool due to bugs in
libtool. This is old-hat :)
-> 'Many people have been sending bug reports to me because libtool
-> doesn't do inter-library dependencies'
->
-> Oops... so what I'm trying to say... it is all well and nice to
-> acknowledge the fact (that it is broken), but it still *is* broken. I
-> mean, the net result is that imlib is linked wrongly, and other things
no - imlib need not be linked at all.. the thing to do is make sure the
apps using imlib are linked correctly :)
-> break as a result. E.g. eplus's config also does not work - it fails
-> when it tries to test for imlib. Eterm does not break because it
-> specifies all those other libraries explicitly, but should it?
-> Etc... Is it such a good idea then to use libtool in a situation where
-> it does not really work? Could possibly something else be used
-> instead? Does anybody know a solution to the problem? Or am I crazy
-> (see subj :) and just missing something that is obvious to everybody
-> else?
->
-> BTW, if you do link imlib with a command like the one quoted above, e
-> links 'out of the box' - no need to mess around with Makefile.
->
--
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
[EMAIL PROTECTED] /\___ /\ ___/||\___ ____/|/\___ [EMAIL PROTECTED]
Carsten Haitzler | _ //__\\ __||_ __\\ ___|| _ / Red Hat Advanced
218/21 Conner Drive || // __ \\_ \ | | \ _/_|| / Development Labs
Chapel Hill NC 27514 USA ||\\\/ \//__/ |_| /___/||\\ 919 547 0012 ext 282
+1 (919) 929 9443, 801 4392 For pure Enlightenmenthttp://www.rasterman.com/
-
To unsubscribe from this list send mail to: [EMAIL PROTECTED]
with the message contents: unsubscribe e-develop