Qt/Embeddedを使って、Linuxデスクトップマシンで組み込みのGUIプログラミングを体験する本連載。今回はQt/Embeddedのインストールの後、動作確認を行い、デスクトップ上でフレームバッファを使用してプログラムが動かせるまでを解説します。
Qt/Embeddedのインストール |
次はQt/Embeddedのインストールです。
先ほどのQt/X11での環境設定を破棄し、表10のように設定します。今回はQt/Embeddedで開発を行うので、ここで設定した環境変数が開発時の設定となります。PATHにQt/X11のbinを追加しているのは、Qt Designerなどのツールを使用するためです。
|
Qt/EmbeddedのconfigureスクリプトのオプションはX11のものと少し違います。オプション「-help」で、使用できるオプションを確認できます。今回は実行例2のようにコンフィグレーションします。
実行例2 Qt/Embeddedのコンフィグレーション |
$ unset which $ ./configure -v \ ← 詳細メッセージ > -thread \ ← スレッド > -depths 8,16,32 \ ↑ フレームバッファの深さ > -qt-gfx-transformed \ ↑ 回転フレームバッファ > -qt-gfx-matrox \ ↑ Matroxグラフィックアクセラレータ (今回の構成で使用しているため) > -qt-gfx-qvfb \ ↑ 仮想フレームバッファqvfb > -qt-gfx-vnc \ ← VNCサーバー機能 > -debug ← デバッグモード |
この工程は、表8の環境で約8〜9分かかります。Qt/Embeddedでは、デフォルトで例外*とRTTI*が無効化されるようにコンパイラオプション「-fno-exceptions」と「-fno-rtti」*が設定されます。Qt/X11ではRTTIが有効になったままなので、開発時に注意が必要です。
Qt/EmbeddedのほうはQt/X11のようにすべてをコンパイルする必要はありません。Qt DesignerやQt LinguistもQt/Embeddedで動作はしますが、コンソールで使用しても仕方がないですし、日本語入力もできません。フットプリント削減のために不要な機能を使わないようQt/Embeddedをインストールした場合には、これらの開発用のツールはQt/Embeddedではコンパイルもできなくなります(フットプリント削減については次回説明)。また、クロス環境ではほとんどの場合不要でしょう。
必要なものをコンパイルするためにmakeターゲットは表11、表12のようになります。まずは、ライブラリをコンパイルしましょう。
$ make sub-src |
ライブラリのみならば、表8の環境で1時間20分強で済みました。次に、プラグインをコンパイルします。
$ make sub-plugins |
こちらは4分ほどかかりました。Qt/X11でコンパイルしたuicをQt/Embeddedのbinにコピーかシンボリックリンクします。
リスト2 include/asm-i386/system.hのswitch_to()マクロ関数 |
$ cp /usr/local/qt/qt-x11-free-3.3.3/bin/uic \ > $QTDIR/bin |
コピーが必要なのは、Qt/Embeddedのサンプルコードなどでuicの絶対パスとしてQt/Embeddedのbinを参照するように扱われているためです。
|
|
Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.