Armadillo上で動作するQtアプリの作成方法をご紹介するHowtoシリーズ3回目の本Howtoでは、Qt向けのIDEであるQt Creatorの使い方を、組み込み向けで使う場合の注意点にフォーカスしてご紹介します。
(前回) Howto : Armadillo-440でQt! 第2回
Qt Creatorの基本設定
前回のHowtoで紹介した 開発環境 には、2012年11月05日現在の最新版である、Qt Creator 2.5.2がインストールされています。メインメニューの[アプリケーション]-[プログラミング]-[Qt Creator]から起動してください。
Qt Creatorでクロス開発ができるようにするため、一通り設定していきます。[ツール]-[オプションメニュー]を選択してください。オプション画面が開きます。
ツールチェインの設定
まずは、ATDE4にインストールされているクロス開発用ツールチェインの設定をします。オプションウィンドウの「ビルドして実行」を選択したあと、「ツールチェイン」タブを選択してください。続いて、右にある「追加」ボタンで「GCC」を選択してください。
「コンパイラのパス」に"/usr/bin/arm-linux-gnueabi-g++"、「デバッガ」に"/usr/bin/arm-linux-gnueabi-gdb"と入力して、「適用」ボタンをクリックしてください。
Qtのパスの登録
続いて、Qtのパスを登録します。オプション画面の「ビルドして実行」の「Qtバージョン」タブを選択してください。
クロス開発用のQtを登録します。右にある「追加」ボタンをクリックし、「qmake のパス」に"/usr/local/Trolltech/Qt-4.8.3-qws-armel/bin/qmake"を設定してください。
同じようにホスト用のQtも登録します。右にある「追加」ボタンをクリックし、「qmake のパス」に"/usr/local/Trolltech/Qt-4.8.3-x11-amd64/bin/qmake"を設定してください。
ターゲットの登録
開発ターゲットとなるArmadilloを登録します。この設定を行っておくと、Qt Creatorで開発したプログラムをArmadilloに直接転送(デプロイ)したり、Armadillo上でプログラムを動作させてデバッグする実機デバッグができるようになります。
オプション画面の「Linux デバイス」を選択し、「デバイス構成」タブの右にある「追加」ボタンをクリックしてください。
「デバイス構成ウィザードを選択」画面が表示されますので、「一般的な Linux デバイス」を選択して「ウィザード開始」ボタンをクリックしてください。
「新しい一般的な Linux デバイス構成の設定」画面が表示されますので、下記のように入力してください。「この構成を識別する為の名前」はユニークなものであれば、何でも良いです。「デバイスのホスト名かIPアドレス」にはArmadilloのIPアドレスを入力してください。(192.168.0.10というのは例です。)「デバイスにログインする為のユーザー名」には"root"を指定してください。「認証方法」は"パスワード"を選択してください。「パスワード」は"root"です。
「次へ」ボタンをクリックすると、「デバイステスト」画面が表示されます。正常にArmadilloと接続できれば、下記のように表示されます。(事前にArmadilloを起動しておく必要があります。ユーザーランドは 第1回 で使用したものにしておいてください。)
以上で、クロス開発用の設定は完了です。オプション画面右下の「OK」ボタンをクリックしてオプション画面を閉じてください。
プロジェクトの設定
プロジェクトの新規作成
Qt Creatorでは、ソースコードやヘッダファイル、リソースファイルなどはプロジェクト単位で管理します。簡単なプログラムを作成し、プロジェクトの設定方法について説明します。
プロジェクトの作成は、[ファイル]-[ファイル/プロジェクトの新規作成]メニューから開始します。
「新規作成」画面が表示されますので、Qt Widgetを使ったC++アプリケーションを作成する場合、"アプリケーション"の"Qt GUI アプリケーション"を選択し、「選択」ボタンをクリックしてください。
プロジェクト名とパスの設定を行います。「名前」には、プロジェクト名を設定します。今回は"hello_qt"としておいてください。
「次へ」ボタンをクリックすると、ターゲット設定画面に遷移します。「Embedded Linux」の右側の「詳細ボタン」をクリックし、"Qt 4.8.3 (Qt-4.8.3-x11-amd64) リリース"と"Qt 4.8.3 (Qt-4.8.3-x11-amd64) デバッグ"のチェックをはずしてください。
「次へ」ボタンをクリックすると、クラス情報画面に遷移します。今回はそのままにしておきます。
「次へ」ボタンをクリックすると、プロジェクト管理画面に遷移します。ここもそのままにしておきます。
完了ボタンをクリックすると、プロジェクトが作成されます。
プロジェクトが作成されると、単純なメインウィンドウを表示するだけのプログラムのスケルトンが生成されます。[ビルド]-[実行]メニューを選択すると、プログラムがビルド/実行され、下記のようなウィンドウが表示されます。
ビルド対象の切り替え
Qt Creatorでは、ソースをビルドしたりプログラムを実行する対象(ターゲット)を切り替えることができるようになっています。ターゲットの切り替えは、[ビルド]-[ビルド/実行ターゲットセレクタを開く]メニューで行います。
プロジェクト作成直後は、ターゲットが"デスクトップ"、ビルドが"Qt 4.8.3 (Qt-4.8.3-x11-amd64) Release"になっています。Armadillo用の実行ファイルを生成したい場合は、ターゲットに"Embedded Linux"を、デバッグを行いたい場合はビルドに"Debug"を選択してください。
ターゲットへのデプロイ/リモートデバッグ設定
Qt CreatorでビルドしたプログラムをArmadilloに転送(デプロイ)し、実機デバッグしてみましょう。
ビルド/実行ターゲットセレクタで、ターゲットを"Embedded Linux"、ビルドを"Qt 4.8.3 (Qt-4.8.3-qws-armel) Debug"に設定してください。
ターゲットにアクセスできるように、プロジェクトの設定を行います。Qt Creatorの左側にあるプロジェクトアイコンをクリックして、プロジェクトモードを表示してください。
画面上側にある「Embedded Linux」の「実行」ボタンをクリックして、「実行時の設定」画面に移行してください。
「デバイス構成」が、オプション画面で設定した「Linux デバイス」の名称(Armadillo-440.Qt)になっていることを確認してください。
続いて、デプロイ方法の設定を行います。「リモートディレクトリ」の「ターゲットパス未設定>」となっている部分をダブルクリックしてください。すると、プロジェクトファイル(hello_qt.pro)に移動しますので、下記を追記してください。「target.PATH」が、実行ファイルをインストールするパスになります。
INSTALLS = target
target.path = /root
Ctrl-Sで変更を保存し、プロジェクト画面に戻ると、リモートディレクトリに「target.path」で指定したパスが表示されることを確認してください。
最後に、ターゲットでの実行方法に関する設定を行います。このプログラムをQWSサーバーとして動作させる場合、「引数」に"-qws"と入力してください。
また、マウスを使えるようにするために、環境変数も設定します。「システム環境変数を使用」の右側の「詳細」ボタンをクリックし、画面を開いてください。「追加」ボタンをクリックし、「変数」に"QWS_MOUSE_PROTO"を、「値」に"tslib:/dev/input/event1"を設定してください。
以上で、設定は完了です。編集画面に戻り、[ビルド]メニューの[プロジェクト "hello_qt" をビルド]、[プロジェクト "hello_qt" をデプロイ]とすると、Armadilloの/rootディレクトリにhello_qtが置かれ、[ビルド]-[実行]とするとArmadillo上でhello_qtが実行されることを確認してください。また、これらの設定をしておくことで、Qt Creator上のソースと連動した形で実機デバッグもできるようになります。
まとめ
- Qt Creatorを使うと、Qtアプリをプロジェクト単位で管理できます
- 一つのプロジェクトで、ホスト環境用とクロス開発用両方の管理ができます
- プロジェクトの設定を適切に行うことで、デプロイ、ターゲットでの実行、実機デバッグがQt Creatorから行えます