[Digikam-users] Fwd: Re: Exiv2 library missing???

Fabien fabien.ubuntu at gmail.com
Fri Dec 8 16:09:34 GMT 2006


Fabien wrote:
>>Well which is the difference, since we use it for libkipi (even if it's KDE_PKG_CHECK_MODULES)
>>and for libgpod? I believe a common way it's easier to maintain. Just decide which, and I believe
>>once it's ok for the most, no one complains.
> 
> 
> I think using pkg-config is the right way to do it. I did some tests 
> yesterday with PKG_CHECK_MODULES instead of KDE_PKG_CHECK_MODULES, but 
> it seems to lead to other issues (bad order of -L and -I which makes the 
> compiler and the linker use older version of libs even if the check was 
> successful). So, maybe it's more consistent to use KDE_PKG_CHECK_MODULES...
> I need to investigate a bit more about that. I will give more details later.

Well, I end up without a proper solution. The configure script is more 
than 47'000 lines of code :(

So, this is what I saw :

The configure script generates Makefile that contains (in my setup) :

all_includes = -I/usr/include/kde -I/usr/share/qt3/include -I. 
-I/localhome/fabien/myopt/include
all_libraries = -L/usr/share/qt3/lib -L/usr/lib 
-L/localhome/fabien/myopt/lib

The paths with /localhome/fabien are the one I put by using
--with-extra-includes=$DIGIKAMDEST/include 
--with-extra-libs=$DIGIKAMDEST/lib

Here, the problem is that /usr/lib is used before my local lib 
directory, so if there's already exiv2 libs in this path, the linker 
will use the old lib.
I discovered that the first time because there's an unknown method in 
the old lib (I did some tests by installing 0.11 in /usr).

<<
In function `Digikam::DMetadata::clearExif()':
dmetadata.cpp:(.text+0xbdc6): undefined reference to 
`Exiv2::ExifData::clear()'
 >>

If somebody can find where (and why) the local paths are not used first, 
it would be great :)

Trying to allow the compilation of digikam using local libs albeit 
standard libs are present will alway lead to bugs and troubles.
So, maybe it's better like that (ie system path first, before local 
paths). This will prevent bug reports of people mixing different 
*developpment files* of exiv2.

After all, there are not many reasons to have multiple developpment 
headers of the same lib in different versions :)

--
Fabien




More information about the Digikam-users mailing list