Qt2系列とQt3系列――第1回 フレームバッファでQtアプリ(その2):UNIX USER1月号「デスクトップで動かす・学ぶQt/Embedded」より転載(2/3 ページ)
Qt/Embeddedを使って、Linuxデスクトップマシンで組み込みのGUIプログラミングを体験する本連載。今回は、Qt2とQt3を選択するうえでの要点と注意事項について、また、Qt/X11のインストールまでを解説する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Qt/Embeddedの標準的なインストール手順を説明します。実際の開発では、ターゲット環境とアプリケーションに合わせて、不要な機能の削除などカスタマイズやイメージフォーマットの追加を行います。これらについては、第2回で詳しく説明します。
Qt/Embeddedの開発環境は、大きく次の3つに分けられます。
(1)デスクトップマシンのLinuxにX11環境を構築し、Qt/X11をインストール
開発は、Linux/X11上で開発ツールを使用して行います。Qt/X11には、(2)で作成するQt/EmbeddedプログラムをX11上で実行するための仮想フレームバッファプログラムqvfbも含まれます。
(2)デスクトップマシンのLinuxにフレームバッファ環境を構築、Qt/Embeddedをインストール
通常はqvfbで開発をしますが、デスクトップLinuxのフレームバッファを使いX11サーバーなしでQt/Embeddedプログラムを動かすこともできます。
(3)ターゲット環境向けのクロス開発環境を構築し、Qt/Embeddedをインストール
ターゲットマシン用のバイナリを作成するための環境です。
ターゲット環境に応じてどれをインストールするか決めます。今回の目的では(1)と(2)が必要となります。(3)については、概要だけ後述します。
機器構成とOS
本稿のテスト用に使用している機器は、表8のようになります。組み込み機器と比較すると余裕のある構成ですが、この程度のスペックでは、以降に示すようにコンパイル時間がかかります。最近のデスクトップマシンならコンパイル時間をもっと短縮できるでしょう。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
Qtの入手方法
まずはQtですが、オープンソース版を次のURLから入手します。
ftp://ftp.trolltech.com/qt/source/
必要なファイルは、Qt/X11とQt/Embeddedのコードである次の2つです。
- qt-x11-free-3.3.3.tar.bz2
- qt-embedded-free-3.3.3.tar.bz2
作業ディレクトリとソースコードの展開
入手した2つのアーカイブを展開します。以下では、作業ディレクトリを/usr/local/qtとしています。ご利用の環境に合わせて読み替えてください。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
リスト2がQtのディレクトリ構成です。インクルードファイルは、includeからsrc内へシンボリックリンクされています。ほとんどのソースコードは共通で、Qt/Embedded用のコードはファイル名が_qws.cppや_qws.hという名前で、src/kernelとsrc/embeddedの両ディレクトリ内にあります。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
インストール方法についての詳細は、配布ソース中のINSTALLファイルとリファレンスマニュアルに書かれています。展開したソースのdoc/html/index.htmlをブラウザで開き、リスト3のようにたどるとリファレンスマニュアルの説明があります。
前述のドキュメントを参考に、以降で今回の目的に沿ったインストール手順を説明します。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
ライセンス設定
オープンソース版では不要ですが、商用版の場合には次の作業をしておくと良いでしょう。コンフィグレーションの前に、次のファイルに入手したライセンス情報を入れておくことで、コンフィグレーション時にライセンスキーの入力をしなくて済みます。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
サンプル作成に必要なRPM
連載を通して画像ファイルのビューワをサンプルプログラムとして取り上げるため、Vine Linux 3.0では次のRPMがインストールされている必要があります。
freetype2-devel libjpeg-devel libmng-devel libpng-devel libtiff-devel zlib-devel |
Copyright(c)2010 SOFTBANK Creative Inc. All rights reserved.