FrontPage
概要 †
MozcはGoogle IMEのオープンソース版で,Linux上で使える日本語入力システムとしてはかなりよい部類に入るものなので,ユーザも多い(当社比).
しかしながら,Google IMEの売りの機能である豊富な辞書データが搭載されておらず,WindowsやMacでGoogle IMEを使っていた人なら物足りなく感じることだろう.
そこで,有志が作成している辞書を組み込んだMozcをインストールすることで,快適な日本語入力ライフを送ろうということをやってみたのだが,これが結構大変だった.
何が起きたか †
Mozc UT Dictionaryと
Ubuntu 13.10 × Fcitx × Mozc UT でさいきょうの日本語入力を実現する - ておくれブログ の通りに作業を行おうとした.
とビルドの途中で怒られた.
僕の開発している環境にはQt5がインストールしてあるのだが,互換性のためQt4もインストール済みである.
この2つのバージョンが干渉してうまくビルドできないことがままある.
普段であれば,インクルードディレクトリやライブラリディレクトリを指定したり,configureにオプションを渡すだけでよいのだが,今回はdebuildとかいうやつを使ってパッケージにしてからインストールという手順を踏んでいるため,いつものようにはいかない.
何が悪いのかと思って,Qt4のインクルードディレクトリにQtWidgetsがあるかどうかまず調べた.
$ ls /usr/include/qt4
Qt QtCore QtDeclarative QtGui QtNetwork QtScript QtSql QtTest QtWebKit QtXmlPatterns
Qt3Support QtDBus QtDesigner QtHelp QtOpenGL QtScriptTools QtSvg QtUiTools QtXml
ないのでQtWidgets/QActionでググると,どうやらQActionはQt5からQtWidgets/QActionに移動したのだという.
つまり,間違えてQt5を使ってビルドしようとしているのではないかと踏んでいろいろいじってみたが,どうもインクルードディレクトリが合っているのでおかしいと感じた.
そこで,先ほどのエラーを注視してみると,ファイル名の"moc"に見覚えが有るのに気づく.
もしやmocやらuicやらrccやらにQt5のものが使用されているのではないかと思ってgrepしたところ,次のファイルが洗い出せた.
どうやらgui/qt_hogehoge.gypiをいじればよさそうだ.
解決策 †
ということでQt4のものをそれぞれ指定.
gui/qt_uic.gypi
'conditions': [
['pkg_config_command', {
'uic_path':
- '<!(<(pkg_config_command) --variable=uic_location QtGui)',
+ '/usr/lib/i386-linux-gnu/qt4/bin/uic',
}, {
'uic_path': '<(qt_dir_env)/bin/uic-qt4<(EXECUTABLE_SUFFIX)',
}],
],
gui/qt_moc.gypi
'conditions': [
['pkg_config_command', {
- 'moc_path': '<!(<(pkg_config_command) --variable=moc_location QtGui)',
+ 'moc_path': '/usr/lib/i386-linux-gnu/qt4/bin/moc',
}, {
'moc_path': '<(qt_dir_env)/bin/moc<(EXECUTABLE_SUFFIX)',
}],
],
gui/qt_rcc.gypi
'conditions': [
['pkg_config_command', {
# seems that --variable=rcc_location is not supported
'rcc_path':
- '<!(<(pkg_config_command) --variable=exec_prefix QtGui)/bin/rcc',
+ '/usr/lib/i386-linux-gnu/qt4/bin/rcc',
}, {
'rcc_path': '<(qt_dir_env)/bin/rcc<(EXECUTABLE_SUFFIX)',
}],
],
これでリビルド,パッケージをインストールできた.
結果 †
下の画像を見ての通り,デフォルトで入ってなさそうな語句もきっちり変換候補に挙げてくれるようになった.