SITE)お問い合わせ商標・著作権について購入方法メルマガ登録お問い合わせ警告メッセージHowtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。2017/01/11Armadillo上で動作するQtアプリの作成方法をご紹介するHowtoシリーズ2回目の本Howtoでは、ごく簡単なQtアプリを作成してみて、組み込み向けQtアプリ作成の勘所を押さえていきます。開発環境の準備Qtアプリを作成するにあたり、Armadillo用の開発環境であるATDEにQt/Embedded用のライブラリ等をセットアップした環境を用意しました。この開発環境を使うと、すぐにQtアプリの開発を開始できます。下記からダウンロードしてください。http://armadillo.atmark-techno.com/files/downloads/sample/a440-qt-howto/atde4-qt-amd64-20130131.zipATDEの使用方法については、既存マニュアル等を参照してください。4.8.3が、ホスト環境用(ATDE上で実行するため)とクロス開発用(Armadilloで実行するため)の二種類インストールされています。それぞれのインストールパスは下記の通りです。/usr/local/Trolltech/Qt-4.8.3-qws-armel/Qtアプリの作り方には2種類ある一口にQtアプリと言っても、実はその作り方には大きく分けて二つあります。一つ目は、C++で記述する方法です。これまでは、この方法が標準の方法でした。Language)と呼ばれるスクリプト言語でUIを記述することができるようになりました。Quickとも呼ばれます。Quickとは"現代的なUIを作成するための技術の総称"であり、QMLはその要素技術の一つという位置づけです。World」を作成してみたいと思います。Qt!」になっています。Widget)でHello!ソースコードまず、hello_qtという名前でディレクトリを作成し、そのディレクトリ直下にmain.cppという名前で下記内容のファイルを作成してください。app.exec();}意味も分からないコードを実行するのは気持ちが悪いので、少しだけコードの内容を説明します。詳細な説明は「入門Qt4プログラミング(オライリー・ジャパン)」の1章で解説されています。そちらもご参照ください。一行目と二行目で、Qtのクラス(QApplication、QLabel)の宣言をインクルードしています。Qtのクラスは全て大文字のQで始まります。argv)を受け取りその処理をしたり、exec()メソッドを実行することでイベント待ちのループに入ったりします。QLabelクラスは、文字列を表示するユーザーインターフェース要素です。Gadgetの略)」と呼びます。ラベルの他に、ボタン、メニュー、スクロールバー、フレームなど様々なウィジェットが標準で用意されています。qmakeから始まるQtアプリも通常のLinuxアプリケーションと同様に、gcc/g++でコンパイル、リンクするという流れは変わりません。そのため、頑張れば自前でMakefileを記述することも可能です。Qtでは複雑なMakefileの作成を自動化してくれるqmakeというツールが用意されていますので、それを使います。qmakeは*.proという名前のプロジェクトファイルを入力とし、適切なMakefileを生成します。hello_qtディレクトリの直下に、hello_qt.proという名前で下記内容のプロジェクトファイルを作成してください。app"で、Qtアプリケーションを作成することを示します。"TARGET"には、実行ファイル名を指定します。今回の場合、実行ファイル名はhello_qtになります。"SOURCES"には、TARGETを生成するための入力となるソースコードを指定します。今回の場合、main.cppだけですが、ファイルが複数ある場合はそれぞれ指定します。Qtでは、これらのソースコード(main.cpp)とプロジェクトファイル(hello_qt.pro)は同じままで、複数の環境で動作する実行ファイルを生成することができます。ホスト用にビルドして実行まずは、ホスト環境で動作させてみます。qmakeはそれぞれのQtインストールパスのbinディレクトリにあるものを使用します。qmakeを実行すると、hello_qtディレクトリにMakefileが生成されます。main.cppあとはmakeコマンドを実行すれば、実行ファイルが生成されます。main.ohello_qtを実行して、結果を確認してください。続いて、同じソースコードをターゲット(Armadillo)用にクロスビルドして、Armadillo上で実行してみます。distcleanを実行しておいてください。main.oホスト用にビルドしたときはコンパイラとしてg++が使われていましたが、クロスビルドした場合はarm-linux-gnueabi-g++が使われていることに注目してください。arm-linux-gnueabi-g++でコンパイルしたバイナリはARM用バイナリとなるため、ホスト(amd64)では動作しません。stripped作成されたARM用バイナリhello_qtをArmadilloに転送します。使用したユーザーランドではSFTPサーバーが起動しているので、sftpコマンドでファイルを転送できます。ユーザー名root/パスワードrootでログインしてください。ArmadilloのIPアドレスが192.168.0.10だった場合の実行例を下記に示します。IPアドレスの部分は適宜読み替えてください。以下は、Armadilloのコンソール(シリアル通信ソフトウェア)での操作となります。Qt!」という文字が書かれたウィンドウが表示されることを確認してください。Creator」の存在があります。Creatorを使うと、下記のようなことが可能になります。Creatorの使い方をご紹介します。使用したユーザーランドには、hello_qt、hello_qml、samegameという3種類のサンプルアプリが含まれています。Quickアプリです。これらを含んだAtmarkDistは下記からダウンロードできます。http://armadillo.atmark-techno.com/files/downloads/sample/a440-qt-howto/atmark-dist-qt-20121105.tar.gzユーザーランドイメージを作成するには、下記のようにコマンドを実行してください。(カーネルのソースコードは標準のものを使います。makeatmark-dist-qt-20121105/images/romfs.img.gzにQtサンプルアプリを含むユーザーランドイメージが生成されます。AtmarkDistにQtアプリを組み込む際の参考にしてください。本Howtoで紹介したATDE4には、ホスト環境用とクロス開発用2種類のQtがインストールされています。ビルド時の設定は、下記の通りです。どの機能が使えるかの確認や、自前でビルドする際の参考にしてください。Inc.本サイトに記載の商品名または会社名は、各社・各団体の商標または登録商標です。TM、®マークは付記していない場合があります。