Hi Richard,
Thanks for your help on this very strange bug. The bug you linked to
looks unrelated - in fact I am not getting any console output at all (I
usually get lots of debug stuff... see below)
I know I've gotten confused about what my system looks like, so I can
only imagine how confusing it must be to you.
Here's the current
state for the rest of this email: no debian smoke or qtruby packages
(i.e. no libqt0-ruby1.8 and no libsmoke*) are installed. I have run
make uninstall in qtruby's source tree too, so I should have no qtruby
on my system, and sure enough "require 'Qt'" fails with "no such file
to load -- Qt".
rm -r qtruby-1.0.10
tar xzf qtruby-1.0.10.tgz
cd qtruby-1.0.10
../configure --with-smoke="qt"
make
The above results in an error:
/bin/sh ../../libtool --silent --tag=CXX --mode=link g++
-Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE
-Wcast-align -Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith
-O2 -Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common -o libsmokeqt.la -rpath
/usr/local/lib -version-info 3:4:92 -no-undefined -Wl,--no-undefined
-Wl,--allow-shlib-undefined -L/usr/share/qt3/lib -L/usr/X11R6/lib
smokedata.lo x_1.lo x_2.lo x_3.lo x_4.lo x_5.lo x_6.lo x_7.lo x_8.lo
x_9.lo x_10.lo x_11.lo x_12.lo x_13.lo x_14.lo x_15.lo x_16.lo x_17.lo
x_18.lo x_19.lo x_20.lo -lqt-mt -lz -lpng -lz -lm -lXext -lX11 -lSM
-lICE -lpthread -lGLU -lGL -lX11
libtool: link: AGE `92' is greater than the current interface number
`3'
libtool: link: `3:4:92' is not valid version information
make[3]: *** [libsmokeqt.la] Error 1
make[3]: Leaving directory `/tmp/qtruby-1.0.10/smoke/qt'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/qtruby-1.0.10/smoke'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/qtruby-1.0.10'
make: *** [all] Error 2
I tried running "make -f Makefile.cvs" too, same result. So 1.0.10 is
out for now since I don't want to fiddle with libtool. ;-)
So I do this:
cd ..; rm -r qtruby-1.0.9; tar xzf qtruby-1.0.9.tgz
make -f Makefile.cvs # (there is no configure in this tarball)
../configure --with-smoke="qt"
make
sudo make install
This time I noticed this at the end of make install:
/usr/bin/ld: warning: libstdc++.so.5, needed by /usr/lib/libqt-mt.so,
may conflict with libstdc++.so.6
Here's the ldd output
$ ldd /usr/local/lib/site_ruby/1.8/i386-linux/qtruby.so
linux-gate.so.1 => (0xffffe000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7f73000)
libsmokeqt.so.1 => /usr/local/lib/libsmokeqt.so.1 (0xb7b1d000)
libqt-mt.so.3 => /usr/lib/libqt-mt.so.3 (0xb7431000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb740c000)
libz.so.1 => /usr/lib/libz.so.1 (0xb73f8000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb73e9000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb73e0000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb73c9000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb73b7000)
libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0xb7339000)
libGL.so.1 => /usr/X11R6/lib/libGL.so.1 (0xb72d5000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb7209000)
libc.so.6 => /lib/tls/libc.so.6 (0xb70d1000)
/lib/ld-linux.so.2 (0x80000000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb6ff6000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6feb000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb6fbc000)
libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb6fa6000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb6f57000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb6f4f000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb6f4b000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb6f42000)
libXft.so.2 => /usr/lib/libXft.so.2 (0xb6f2f000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb6ec2000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb6ebd000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb6e03000)
libXxf86vm.so.1 => /usr/X11R6/lib/libXxf86vm.so.1 (0xb6dfe000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb6dde000)
That warning gave me the idea to look at 'ldd /usr/lib/libqt-mt.so.3':
ldd /usr/lib/libqt-mt.so.3
linux-gate.so.1 => (0xffffe000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb784c000)
libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb7837000)
libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb77e8000)
libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb77c3000)
libz.so.1 => /usr/lib/libz.so.1 (0xb77af000)
libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb77a6000)
libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0xb77a2000)
libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7799000)
libXft.so.2 => /usr/lib/libXft.so.2 (0xb7786000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7719000)
libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb770b000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb763f000)
libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb7636000)
libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb761f000)
libdl.so.2 => /lib/tls/libdl.so.2 (0xb761b000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7609000)
libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0xb754f000)
libm.so.6 => /lib/tls/libm.so.6 (0xb7528000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb751d000)
libc.so.6 => /lib/tls/libc.so.6 (0xb73e5000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb73c5000)
/lib/ld-linux.so.2 (0x80000000)
Sorry for the copious output.
Now, in qtruby/rubylib/tutorial/ I can run t1, t2, and t3 just fine,
but t4 gives me an empty gray box. I stuck a puts 'foo' just after the
call to super in t4.rb (line 10), and it seems that it never gets
printed. So it looks like the call to Qt::Widget::initialize via super
is not returning. If I put 'puts "foo"' before the super call, it does
happen.