CentOS 4.8でQtRubyのインストールに再挑戦

2011/01/07 0:31 に 森山誠二郎 が投稿   [ 2011/01/12 22:05 に更新しました ]
再挑戦したものの見事玉砕。CentOS4.8ではdbusのバージョンが低く、Qtをdbus付き
でインストールできません。dbusを独自にインストールすることも考えたが、あまりに道は厳しそうなので、CentOS5で再挑戦することに方針変更した。

以下は敗戦の記録です:
1. cmake(cmake-2.8.3)のインストール
     ./bootstrap --prefix=/home/anagix/anagix_tools
     make & make install
2. automoc(automoc4-0.9.88)のインストール
   cmake -DCMAKE_INSTALL_PREFIX=/home/anagix/anagix_tools
      make & make install でOK
    のはずが、Qtのqmakeが無いとしかられるので先に進む
  システムにインストールされているmocが使われる...
3. Qt(qt-everywhere-opensource-src-4.7.1)のインストール
  今回は、以下のように-no-accessibilityはやめた
OPENSSL_LIBS='-L/home/anagix/anagix_tools/lib -lssl -lcrypto' ./configure -prefix ~/anagix_tools/qt-4.7.1 -openssl-linked -I/home/anagix/anagix_tools/include -nomake demos -nomake examples -no-qt3support -no-phonon -no-phonon-backend -no-webkit
メモ
・最初、qtのインストール先を~/anagix_toolsにしていたが、~/anagix_tools/qt-4.7.1に変更した
 ~/anagix_tools/binに入っていたqmakeなどを削除し(これをしないとQT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as /home/anagix/anagix_tools/libというメッセージで悩む)、~/anagix_tools/qt-4.7.1/binをパスに加えて
 qt4-rubyをコンパイルした
・klayoutでは、qt3supportが必要なことが判明したので、-qt3supportでコンパイルしなおした
・トラブルの記録:最初-staticでインストールし、次にダイナミックにかえた。何故かわからないが、
/plugins/imageformats以下に、 libqico.a、libqsvg.aしか作成されなかった。ダイナミックで、
以下のようなエラーで、libQtGui.soが作成されなかった(そのためklayoutのリンクに失敗)
.obj/release-shared/qimagereader.o(.text+0xdc1): In function `.L862':
: undefined reference to `QGifHandler::canRead(QIODevice*)'
4. QtRubyのインストールで、automoc4がないといわれるので、先に2をやっつけようとしたが
失敗。結局ubuntuで作成したautomoc4からコピーした(その後、どこかでmakeできた)
5.KLayout(klayout-0.21.3)のインストール
  ./build.sh -qt ~/anagix_tools -rblib ~/anagix_tools/lib/libruby-static.a -rbinc ~/anagix_tools/lib/ruby/1.8/i686-linux
 今回は最終的にきれいにできた(ただし、QtRubyは動かない)
 ポイントは、
  ・~/anagix_tools/qt-4.7.1/binをパスに入れる
  ・Qtをqt3supportでコンパイルする
6. QtRuby(qt4-qtruby-2.1.0)のインストール
  CMakeLists.txtの指示に従い、cmake -DCMAKE_INSTALL_PREFIX=~/anagix_tools\
 -DRUBY_EXECUTABLE=~/anagix_tools/bin/ruby -DRUBY_INCLUDE_PATH=~/anagix_tools\
/lib/ruby/1.8/i686-linux -DRUBY_LIBRARY=~/anagix_tools/lib/libruby-static.a -\
Wno-dev  -DENABLE_SMOKE=on   -DENABLE_QTRUBY=on  -DENABLE_QTWEBKIT_SMOKE=off \
 -DENABLE_QTSCRIPT_SMOKE=off  -DENABLE_QTUITOOLS_SMOKE=off  -DENABLE_QTTEST_S\
MOKE=off  -DENABLE_PHONON_SMOKE=off  -DENABLE_QSCI_SMOKE=off  -DENABLE_QWT_SM\
OKE=off  -DENABLE_KDE_SMOKE=off  -DENABLE_KDEVPLATFORM_SMOKE=off  -DENABLE_KH\
TML_SMOKE=off  -DENABLE_KTEXTEDITOR_SMOKE=off  -DENABLE_SOLID_SMOKE=off  -DEN\
ABLE_PLASMA_SMOKE=off  -DENABLE_QTWEBKIT_RUBY=off  -DENABLE_QTUITOOLS_RUBY=of\
f  -DENABLE_QTSCRIPT=off  -DENABLE_QTTEST=off  -DENABLE_PHONON_RUBY=off  -DEN\
ABLE_QSCINTILLA_RUBY=off  -DENABLE_QWT_RUBY=off  -DENABLE_SOPRANO_RUBY=off  -\
DENABLE_KDEVPLATFORM_RUBY=off  -DENABLE_KORUNDUM_RUBY=off  -DENABLE_KHTML_RUB\
Y=off  -DENABLE_KTEXTEDITOR_RUBY=off  -DENABLE_SOLID_RUBY=off  -DENABLE_KROSS\
RUBY=off  -DENABLE_PLASMA_RUBY=off  -DENABLE_QIMAGEBLITZ_SMOKE=off
  としたが、以下のエラーでストップ:
[ 50%] Building CXX object smoke/qtgui/CMakeFiles/smokeqtgui.dir/x_3.cpp.o
/home/anagix/anagix_tools/src/qt4-qtruby-2.1.0/smoke/qtgui/x_3.cpp:3947: error: base `QClipboard' with only non-default constructor in class without a constructor
ここでgive up

おまけ
1.QtRubyでdbusが必要とされているように見えたので、Qtをw/ dbus supportでコンパイルしようとしたが、
   The QtDBus module cannot be enabled because libdbus-1 version 0.93 was not found.というエラーが
   でる。Ubuntuではdbus-develがなく、pkg-configでdbusの情報を取れないのが原因のようだが、CentOSでは
   dbus-develはありpkg-configは動く。configure に-vオプションをつけて原因がわかった
   configureのオプションとして -I /usr/include/dbus-1.0 -I /usr/lib/dbus-1.0/includeを指定する必要があった。
   それでもCentOS4.8の場合、dbusのバージョンが古いようで、dbusつきではconfigureできない。
Comments