trinity-devel@lists.pearsoncomputing.net

Message: previous - next
Month: May 2011

Re: [trinity-devel] Qt3 - No Longer Builds (multiple boxes) libkdecore.so.4: undefined symbol: _ZN7KGlobal20deleteStaticDeletersEv

From: /dev/ammo42 <mickeytintincolle@...>
Date: Tue, 10 May 2011 19:29:10 +0200
Le Tue, 10 May 2011 12:01:17 -0500,
"David C. Rankin" <drankinatty@...> a écrit :

> Guys,
> 
>    This is bizarre. I went to build Qt3 this morning, applied a new
> patch, and Qt3 wouldn't compile. So I removed the patch just to make
> sure nothing on the system had changed to prevent building and -- I
> STILL GET THE ERROR??
> 
>    So I went to a box where Qt3 built a day or so ago which still had
> the Qt3 build directory in place from the last time it built and went
> to build it again 
> - I get the same symbol lookup error.
> 
>    The only thing that changes was qt 4.7.3-1 was pulled in as a
> dependency of poppler-qt when I attempted to build kdegraphics with
> -DWITH_PDF=ON.  I thought Qt3 would build fine with Qt4 installed?
> Is this something new with the new version?
> 
>    The symbol error has me scratching my head. I can't for the life
> of me figure out what this error is telling me:
> 
> g++ -c -pipe -fPIC -Wall -W -march=i686 -mtune=generic -O2 -pipe
> -D_REENTRANT -DDESIGNER -DQT_INTERNAL_XML -DQT_INTERNAL_WORKSPACE
> -DQT_INTERNAL_ICONVIEW -DQT_INTERNAL_TABLE -DQT_NO_DEBUG
> -DQT_THREAD_SUPPORT -DQT_SHARED
> -I/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/mkspecs/linux-g++
> -I. -I/usr/include/freetype2 -I../shared -I../uilib
> -I../../../include -I/usr/X11R6/include -I.moc/release-shared-mt/
> -o ./editfunctions.o
> editfunctions.cpp /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/bin/uic
> -L /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/plugins
> newform.ui -i newform.h -o newform.cpp g++ -c -pipe -fPIC -Wall -W
> -march=i686 -mtune=generic -O2 -pipe -D_REENTRANT -DDESIGNER
> -DQT_INTERNAL_XML -DQT_INTERNAL_WORKSPACE -DQT_INTERNAL_ICONVIEW
> -DQT_INTERNAL_TABLE -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED
> -I/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/mkspecs/linux-g++
> -I. -I/usr/include/freetype2 -I../shared -I../uilib
> -I../../../include -I/usr/X11R6/include -I.moc/release-shared-mt/
> -o ./newform.o newform.cpp In file included
> from ../../../include/qdragobject.h:50:0,
> from ../../../include/qiconview.h:51, from
> newform.cpp:13: ../../../include/qimage.h: In member function ‘bool
> QImageTextKeyLang::operator<(const QImageTextKeyLang&)
> const’: ../../../include/qimage.h:61:61: warning: suggest parentheses
> around ‘&&’ within
> ‘||’ [-Wparentheses] /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/bin/uic
> -L /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/plugins
> listvieweditor.ui -i listvieweditor.h -o
> listvieweditor.cpp /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/bin/uic:
> symbol lookup error: /opt/trinity/lib/libkdecore.so.4: undefined
> symbol: _ZN7KGlobal20deleteStaticDeletersEv make[4]: ***
> [listvieweditor.cpp] Error 127 make[4]: Leaving directory 
> `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/tools/designer/designer'
> make[3]: *** [sub-designer] Error 2
> make[3]: Leaving directory 
> `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/tools/designer'
> make[2]: *** [sub-designer] Error 2
> make[2]: Leaving directory 
> `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/tools'
> make[1]: *** [sub-tools] Error 2
> make[1]: Leaving directory
> `/home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b' make: ***
> [init] Error 2 ==> ERROR: A failure occurred in build().
>      Aborting...
> 
>    I get that it is a uic symbol lookup error:
> 
> /home/david/tblds/trinity-qt3/src/qt-x11-free-3.3.8b/bin/uic: symbol
> lookup error: /opt/trinity/lib/libkdecore.so.4: undefined symbol: 
> _ZN7KGlobal20deleteStaticDeletersEv
> 
>    How does one fix a symbol lookup error like this?
> 
>    Also why does the Qt3 build even look
> to /opt/trinity/lib/libkdecore.so.4? How can I prevent this from
> happening? This built fine before the Qt4 package installed. Short of
> removing Qt4, what is the best way to try and fix this?
It works for me™.
I am using a slightly modified version of the Slackware-originated
SlackBuild that can be found at
ftp://ftp.gwdg.de/pub/linux/slackware/unsupported/kde-3.5.10-for-slack13.0/source/qt3/
This is a unusual SlackBuild, because it builds qt3 in /opt/kde3
(Patrick Volderking says in the scripts that building it in /tmp
frequently led to wrong packages).
Also, I posted my own version recently on the list, it is essentially
the same with additional patches.
I am building Trinity under Slackware 13.37 with full KDE4 alongside
(KDE4 is my main desktop now, no kidding), and:
-dependencies such as qt3, qca and poppler-qt3 compile with the
unsupported scripts from the Slackware mirrors, with /opt/kde3 prefix
-arts, dbus-tqt, dbus-1-tqt, tqtinterface compile without errors,
with /opt/kde3 prefix
-kdebase and kdelibs also compile without errors, still in /opt/kde3,
but when I launch any KDE3 program, it doesn't manage to load any
library in /opt/kde3/lib/kde3.
However, when I built qt3, Trinity was not installed, but only KDE4.
I will put the build scripts and the patches online when I have more
time (==soon), right now I have my exams. The patches basically fix
kconfig_compiler detection (with the SVN version it uses the KDE4 one)
and enforce the use of dbus-tqt.pc for the build of kdebase.
> 
>    The build script is here:
> 
> http://svn.trinitydesktop.org/svn/trinity-packaging/arch/master/trinity-qt3/PKGBUILD
> 
>    The Qt3 package built fine when I uploaded it a day ago:
> 
> http://svn.trinitydesktop.org/svn/trinity-packaging/arch/master/src/trinity-qt3.tar.gz
> 
>    Any help appreciated :)
>