Andreas,<br><br>look this message from digikam-users mailling list<br><br>Any suggestions ?<br><br>Gilles<br><br>---------- Forwarded message ----------<br><span class="gmail_quote">From: <b class="gmail_sendername">Pedro Venda
</b> <<a href="mailto:pjvenda@pjvenda.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">pjvenda@pjvenda.org</a>><br>Date: 14 mars 2007 23:21<br>Subject: [Digikam-users] potential incompatibility between exiv2-svn and 
exiv2-0.12<br>To: <a href="mailto:digikam-users@kde.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
digikam-users@kde.org</a><br><br></span>Hi everyone,<br><br>I am facing another compilation error, for which I do not have enough C++<br>experience to handle. I am compiling digikam along with trunk/exiv2<br>and trunk/extragear/libs, I have updated the svn copy of digikam several
<br>times and even rm -rf and rechecked the whole trees again to rule out any<br>mess I might have made.<br><br>The following error happens when compiling several objects from<br>digikam/libs/widgets/metadata/:<br><br>if /bin/sh ../../../../libtool --silent --tag=CXX --mode=compile
<br>g++ -DHAVE_CONFIG_H -I. -I. -I../../../.. -I../../../../digikam/libs/dmetadata -I../../../../digikam/libs/dimg -I/usr/local/digikam-trunk/include   -I../../../../digikam/digikam -I/usr/kde/3.5/include -I/usr/qt/3/include -I.   -DQT_THREAD_SUPPORT  -D_REENTRANT  -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -O2 -I/usr/local/digikam-trunk/include -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor -fno-exceptions -fno-check-new -fno-common -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -DQT_CLEAN_NAMESPACE -DQT_CLEAN_NAMESPACE -DQT_NO_ASCII_CAST -DQT_NO_STL -DQT_NO_COMPAT -DQT_NO_TRANSLATION -fexceptions -MT
<br>iptcwidget.lo -MD -MP -MF ".deps/iptcwidget.Tpo" -c -o iptcwidget.lo<br>iptcwidget.cpp; \<br>    then mv -f ".deps/iptcwidget.Tpo" ".deps/iptcwidget.Plo"; else<br>rm -f ".deps/iptcwidget.Tpo"; exit 1; fi
<br>iptcwidget.cpp: In member function 'virtual bool<br>Digikam::IptcWidget::decodeMetadata()':<br>iptcwidget.cpp:159: error: request for member 'c_str'<br>in '((Exiv2::Error*)e)->Exiv2::Error::what()', which is of non-class
<br>type 'const char*'<br>iptcwidget.cpp: In member<br>function 'virtual QString Digikam::IptcWidget::getTagTitle(const QString&)':<br>iptcwidget.cpp:188: error: request for member 'c_str'<br>
in '((Exiv2::Error*)e)->Exiv2::Error::what()', which is of non-class
<br>type 'const char*'<br>iptcwidget.cpp: In member<br>function 'virtual QString Digikam::IptcWidget::getTagDescription(const<br>QString&)':<br>iptcwidget.cpp:205: error: request for member 'c_str'
<br>in '((Exiv2::Error*)e)->Exiv2::Error::what()', which is of non-class<br>type 'const char*'<br>make[5]: *** [iptcwidget.lo] Error 1<br><br>I looked at the exiv2 error.hpp (exiv2-svn) header and I found that the method
<br>Exiv2::Error.what() already returns a (const char *) so c_str() is (probably)<br>not adequate. The affected source files were: iptcwidget.cpp, exifwidget.cpp,<br>gpswidget.cpp and makernotewidget.cpp.<br><br>This what() method differs in the way it is being prototyped/implemented
<br>between exiv2-svn and exiv2-0.12 (error.hpp).<br>exiv2-svn is:<br>        virtual const char* what() const throw() { return msg_.c_str(); }<br>exiv2-0.12 is:<br>        virtual std::string what() const;<br><br>The call to c_str() might work if called from a std::string object, but not
<br>from a const char * type variable (which is not even semantically correct).<br>If I remove the call to c_str() on the affected objects, digikam compiles<br>correctly but doesn't work. It starts and immediately after showing up the
<br>main screen, it segfaults with:<br><br>terminate called after throwing an instance of 'std::bad_alloc'<br>  what():  St9bad_alloc<br><br>Obviously, this is related to my changes on the source files.<br>The next step I took was to compile digikam-svn against my system's 
exiv-0.12.<br>It worked well, so I think I have found an incompatibility here...<br><br>I need help here from C++ developers. I suppose this should be quite simple to<br>fix.<br><br>Best regards,<br>--<br><br>Pedro Joćo Lopes Venda
<br>email: pjvenda at pjvenda org<br><a href="http://www.pjvenda.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.pjvenda.org</a><br>_______________________________________________<br>
Digikam-users mailing list<br><a href="mailto:Digikam-users@kde.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Digikam-users@kde.org
</a><br><a href="https://mail.kde.org/mailman/listinfo/digikam-users" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">https://mail.kde.org/mailman/listinfo/digikam-users</a><br>