> 1.6.0 の安定化に向けて、よろしければ試用と問題点
> の報告をお願いします。

Debian sidでlibqt4-devとqt3-dev-toolsを入れていると、
qt4/prefでコンパイルエラーが発生します。

Qtはよく知らないので、まずは問題の報告のみです。

* 現象
  ./configure --with-qt --with-qt-immodule --with-qt4 --with-qt4-immodule
  してmakeすると、qt4/pref/で以下のコンパイルエラー。

In file included from customwidgets.cpp:33:
customwidgets.h: At global scope:
customwidgets.h:225: error: expected class-name before '{' token
customwidgets.h:225: error: invalid use of incomplete type 'struct QDialog'
/usr/include/qt4/QtGui/qwindowdefs.h:57: error: forward declaration of 'struct 
QDialog'

* 環境
  Debian sid(i386)でlibqt4-devとqt3-dev-toolsをインストール済。

* 原因
  /usr/bin/uicがuic-qt3にsymlinkされているため、
  qt4/pref/*.uiから生成されるqt4/pref/ui_*.hの中身が空になっている。

  qt4/pref/Makefile.qmakeを手で変更して、
  /usr/bin/uic-qt4を使うようにしたらエラーは発生しなくなった。

* 対処案
** 案1
   例えば、uim-pref-qt4.pro.inを以下のように変更。
< QMAKE_UIC = $$[QT_INSTALL_BINS]/uic -tr UIC_
---
> QMAKE_UIC := $(QMAKE_UIC) -tr UIC_

#  Makefile.qmakeからたどった/usr/share/qt4/mkspecs/features/uic.prfに
#  以下の定義有り。
#  qtPrepareTool(QMAKE_UIC, uic-qt4)

   あるいは、uic-qt4を見つけて、それを使うようにconfigure等を記述。

** 案2
   生成済みのqt4/pref/ui_keyeditformbase.h,ui_olisteditformbase.h}を
   アーカイブに含める。
   対象環境に応じて生成する必要があるものだとすると、この案は駄目ですけど。

-- 
木原 英人 / KIHARA, Hideto / de...@m1.interq.or.jp
http://www1.interq.or.jp/~deton/

-- 
Google Groups "uim-ja" group
uim-ja@googlegroups.com
http://groups.google.com/group/uim-ja/about

メールによる返信