▲Zaurus Top | ↑Up(設定・システム) | ←Prev(Opie 環境と OPIE PIM(失敗)) | →Next(qtmail で Gmail(imap)を使う)
(2003/09/22)
やっぱり、Qt アプリを作ってみたくなって、クロス開発環境を構築することにした(開発成果が出てくることは期待しないこと)。ほとんど、チュートリアルに書いてあるままなのだが、一部、新しくなっている情報があるので、2003/09/22 時点の情報に対応してある。自分用のメモを書いたついでに公開する。
このドキュメントが開発の原典となる。良く読むのだ。
以下、このチュートリアルにしたがって、ツールをそろえる。まずはクロスコンパイル関係。
Zaurus 宝箱 Proからダウンロード。rpm -Uvvh で /opt/Embedix/tool/ 以下に入る。この段階で、コンソールアプリ開発のツールは揃っているはず。次は、Qtopia 関係。
Qtopia-free を使ったアプリケーションは GPL で配布しなければならないことに注意。それがいやなら有償版を使うこと。
これで、tutorial の練習問題ができる環境が構築できました。母艦上での qvfb 上での動作、実機での動作を試してみて下さい。今後、実機動作テストを頻繁にすることが考えられるので、scp が使えるように、ssh 環境を整備しておくのもよいでしょう。
開発の初期段階は、/opt/Qtopia/dev-x86-qpe.sh を source して環境変数を設定する。そうすると、x86コードを出力するコンパイラが動作し、母艦上で動作するプログラムができる。それを実行するときの表示デバイスが qvfb である。開発の後期段階では、dev-arm-qpe.sh を source してやると、arm コードを出力するコンパイラが、実機上で動作するオブジェクトを作成するので、実機で実行させる。これが、qvfb 環境のポイントとなる。
qvfb を動作させて表示デバイスを準備したら、プログラムを直接実行することができる。
[nkon@purple nkon2]$ cd /opt/Qtopia/ [nkon@purple Qtopia]$ ls LICENSE bin/ doc/ help/ pics144/ tmake/ README dev-arm-qpe.sh doc-sharp/ include/ plugins/ README_SHARP dev-x86-c700-qpe.sh etc/ lib/ qvfb_c700* apps/ dev-x86-qpe.sh example/ pics/ sharp/ [nkon@purple Qtopia]$ . dev-x86-qpe.sh !sharp-dev-x86:/opt/Qtopia$ qvfb & [1] 2262 !sharp-dev-x86:/opt/Qtopia$ Using display 0 cd example/ !sharp-dev-x86:/opt/Qtopia/example$ tmake -o Makefile example.pro !sharp-dev-x86:/opt/Qtopia/example$ make /opt/Qtopia/bin/uic examplebase.ui -o ./examplebase.h g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -DNO_DEBUG -I/opt/Qtopia/include -I/opt/Qtopia/include -o main.o main.cpp g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -DNO_DEBUG -I/opt/Qtopia/include -I/opt/Qtopia/include -o example.o example.cpp /opt/Qtopia/bin/uic examplebase.ui -i examplebase.h -o examplebase.cpp g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -DNO_DEBUG -I/opt/Qtopia/include -I/opt/Qtopia/include -o examplebase.o examplebase.cpp /opt/Qtopia/bin/moc example.h -o moc_example.cpp g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -DNO_DEBUG -I/opt/Qtopia/include -I/opt/Qtopia/include -o moc_example.o moc_example.cpp /opt/Qtopia/bin/moc examplebase.h -o moc_examplebase.cpp g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -DNO_DEBUG -I/opt/Qtopia/include -I/opt/Qtopia/include -o moc_examplebase.o moc_examplebase.cpp gcc -o example main.o example.o examplebase.o moc_example.o moc_examplebase.o -L/opt/Qtopia/lib -lqpe -lqte !sharp-dev-x86:/opt/Qtopia/example$ ./example -qws Connected to VFB server: 240 x 320 x 16 could not open for writing `/opt/Qtopia/etc/zstyles/ZBlue.style.new'
ランチャである、qpe を起動させて、その中から、/opt/Qtopia/app/XXXX の下にある *.desktop ファイルを経由して、/opt/Qtopia/bin/ 以下にあるプログラムを実行することもできる(母艦と実機でパスが同じになっていることことに注意)。いくつか足りてないファイルがあるので、実機から母艦に持ってくる。
ちなみに、Qtopia プログラムの、オプション -qws は qvfb 上で最初に起動するプログラムに付ける。つまり、qpe を起動してそのうえでアプリを動かす場合は qpe に -qws オプションを付ける。qvfb 上で直接アプリを動かす場合は、アプリのオプションに -qws を付ける。(→ Qt Reference Documents | Qt/Embedded アプリケーションの実行)
▲Zaurus Top | ↑Up(設定・システム) | ←Prev(Opie 環境と OPIE PIM(失敗)) | →Next(qtmail で Gmail(imap)を使う)