[Kde-bindings] adventures with smoke and qtruby (kdebindings 3.2.3)

jm jm at transact.com.au
Tue Jun 22 05:11:13 UTC 2004


Decided to give qtruby on macosx a rest for the moment and after have a  
week off work for exams found a linux box that I can use for  
experimenting on.

I did the following to get where I'm up to.

altered configure thus,

31966c31966,31967
< DO_NOT_COMPILE="$DO_NOT_COMPILE dcopjava qtruby korundum"
---
 > #DO_NOT_COMPILE="$DO_NOT_COMPILE dcopjava qtruby korundum"
 > DO_NOT_COMPILE="$DO_NOT_COMPILE dcopjava korundum"

found that qtruby/rubylib/qtruby/Qt.cpp complained about vasprintf().  
Fixed this by putting
#define _GNU_SOURCE

ABOVE #include <stdio.h>

couldn't find rule to make smoke, see following,

/bin/sh ../../../libtool --silent --mode=link --tag=CXX g++   
-Wnon-virtual-dtor -Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500  
-D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -Wall -W  
-Wpointer-arith -Wwrite-strings -O2 -fno-exceptions -fno-check-new  
-fno-common    -o libqtrubyinternal.la   Qt.lo handlers.lo
make[5]: *** No rule to make target `../../../smoke/qt/libsmokeqt.la',  
needed by `qtruby.la'.  Stop.

changed to smoke directory and ran make change back to top level  
directory and run make again. Now end up with

/bin/sh ../../../../libtool --silent --mode=compile --tag=CXX g++  
-DHAVE_CONFIG_H -I. -I. -I../../../.. -I/opt/jmx/include  
-I/opt/qt-x11-free-3.3.2//include -I.  -DUIC -DQT_INTERNAL_XML  
-DQT_THREAD_SUPPORT  -D_REENTRANT  -Wnon-virtual-dtor -Wno-long-long  
-Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align  
-Wconversion -Wchar-subscripts -Wall -W -Wpointer-arith -Wwrite-strings  
-O2 -fno-exceptions -fno-check-new -fno-common  -c -o embed.lo  
embed.cpp
embed.cpp: In function `static void Uic::embed(QTextStream &, const  
char *, const QStringList &)':
embed.cpp:195: ambiguous overload for `int & ? const QString : const  
char[3]'
embed.cpp:195: candidates are: operator ?:(bool, QString, QString)  
<builtin>
embed.cpp:195:                 operator ?:(bool, string,  
basic_string<char,string_char_traits<char>,__default_alloc_template<true 
,0> >) <builtin>
embed.cpp:195:                 operator ?:(bool, const char *, const  
char *) <builtin>
make[5]: *** [embed.lo] Error 1
make[5]: Leaving directory  
`/home/jmiller/qtplay/kdebindings-3.2.3/qtruby/rubylib/designer/rbuic'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory  
`/home/jmiller/qtplay/kdebindings-3.2.3/qtruby/rubylib/designer'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory  
`/home/jmiller/qtplay/kdebindings-3.2.3/qtruby/rubylib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory  
`/home/jmiller/qtplay/kdebindings-3.2.3/qtruby'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/jmiller/qtplay/kdebindings-3.2.3'
make: *** [all] Error 2

also ran make from within qtruby directory with same results.

Worked around this by installing smoke and, from with in  
qtruby/rubylib/qtruby, running

ruby extconf.rb --with-smoke-dir=/opt/jmx --with-qt-dir=$QTDIR
make
sudo make install

Finally, running one of the examples gives,

.../kdebindings-3.2.3/qtruby/rubylib/examples/qt-examples/hello$  
./main.rb
/usr/local/lib/ruby/site_ruby/1.8/i686-linux/Qt.so: ruby: undefined  
symbol: Init_Qt - /usr/local/lib/ruby/site_ruby/1.8/i686-linux/Qt.so  
(LoadError)
         from ./main.rb:3

Any hints on how to attack this problem?

Jeff.




More information about the Kde-bindings mailing list