Le 22/02/2014 20:18, David C. Rankin a écrit :
Slavek,
I will let you do it. Obviously I am missing something simple. Both the build
I did (the long way) and the build done by:
# ~/tde/tde/experimental/qt3-tqt3/convert_existing_qt3_app_to_tqt3
# ~/tde/tde/experimental/kde-tde/convert_existing_kde3_app_to_tde
# cp -r ~/tde/tde/main/common/admin .
Build for 1:12 seconds to what looks like the final linking steps and then
fail. It looks like it is really close, but there is a library missing from the
final link command - which one?? The error is:
libtool: link: g++ -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500
-D_BSD_SOURCE -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith -O2
-march=i686 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4
-fpermissive -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common -I/usr/include/tqt -Wl,-O1
-Wl,--sort-common -Wl,--as-needed -Wl,-z -Wl,relro -o kxmleditor
dcopiface_shell.o kxmleditorshell.o main.o kxeshellmanager.o
dcopiface_shell_skel.o kxmleditorshell.moc.o -L/opt/trinity/lib -L/opt/tqt3/lib
-L/opt/trinity/lib/trinity /opt/trinity/lib/libtdeparts.so
/opt/trinity/lib/libtdeui.so /opt/trinity/lib/libtdecore.so
/opt/tqt3/lib/libtqt-mt.so -L/usr/lib/mysql -L/usr/X11R6/lib -luuid -lpq
-lmysqlclient -lXrender -lXrandr -lXcursor -lXinerama -lXft -lfreetype
-lfontconfig -ldl -lpng -lz -lm -lXext -lX11 -lSM -lICE /usr/lib/libtqt.so
-lpthread -Wl,-rpath -Wl,/opt/trinity/lib -Wl,-rpath -Wl,/opt/tqt3/lib
-Wl,-rpath -Wl,/opt/trinity/lib/trinity
/usr/bin/ld: kxmleditorshell.o: undefined reference to symbol
'_ZN11KFileDialog10getOpenURLERK8TQStringS2_P8TQWidgetS2_'
/opt/trinity/lib/libtdeio.so.14: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
Makefile:629: recipe for target 'kxmleditor' failed
make[2]: *** [kxmleditor] Error 1
make[2]: Leaving directory '/build/tde-kxmleditor/src/kxmleditor/kxmleditor'
Makefile:575: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/build/tde-kxmleditor/src/kxmleditor'
Makefile:492: recipe for target 'all' failed
make: *** [all] Error 2
How to fix?
It's really common with these old programes that there are missing
linker flags in the Makefile.
It looks like nowaday's compiler are much stricter, we must specify
every library to link, there is no auto-detection at all.
On some distribution (like Mageia :-) ) the error message that I get
from the linker tells exactly what library is required, whereas yours
only shows the missing symbol, which is not really helpful.
I'll try to build this tool and see what is wrong here.
Francois