coLinux上でQteエミュレーション
最近のザウルス用のQtアプリの勉強はコンパイル速度や画面の広さといった理由でWindowsPC上に構築したCygwin上のクロスコンパイル環境で行うことが多くなっていました。ところが動作確認の段階でいちいちバイナリをザウルスの移動する作業が面倒なのでエミューレションできるqvfbを導入すべくいろいろと努力していたのですがどうも上手くいかない。qvfbの単体起動で「bad systemcall」と表示されるに至ってスッパリと断念、coLinux上にQtのクロスコンパイル環境とエミュレーション環境を作ることにしました。
で、できたのが上の画像、実行しているのは先日のdrawtestのプログラムです。画面がWindowsっぽく無くなっていてなんか嬉しい(笑) ちなみにXサーバーはCygwin/Xを使用しています。
ただし実際に動かしてみると若干の問題点もありますね、挙げると以下のとおり。
- レイアウトがザウルス上のQt環境と微妙に(かなり?)異なる
- ソースの中でメッセージ等に日本語を使用していると落ちる(何か対処方法があるのでしょうか)
- テキストエリアへの入力やボタンを押してからの反応が鈍いことがある(CygwinとcoLinuxを同時に動かしているせい?)
まぁC++の勉強につかう分にはなんら不満ではないのでこのまま使用してみようと思います。これでCygwinはXサーバー機能以外は必要なくなったかもしれない。
以下、導入手順
gcc2.95の導入
coLinuxに入っているgccは3.3.5でこのままではQtアプリのコンパイルができないので、gcc2.95が動くようにする。
$ tar jxvf gcc-2.95.3.tar.bz2 $ cd gcc-2.95.3 $ CFLAGS="-O2" \ ./configure --prefix=/opt/gcc \ --enable-languages=c,c++ $ make $ su # make install
追記
よく考えたらgcc-cross-sa1100-2.95.2-0.i386.rpmがあった(笑)
開発環境導入
- ザウルス宝箱Proから「Qtopia開発チュートリアル」(qte_tutorial_030122_a300.pdf)をダウンロードして「1.2 ツールのセットアップ」の記載どおりにパッケージをインストールしていく。
- パッケージの入手先はここ、qtopia-free-1.5.0-1.i386.rpmはこちら
- rpmパッケージについては、そのままで展開できなかったのでtgzに変換して"/"に持ってきて展開
$ alien --to-tgz xxx.rpm
- tmake-sharp.tar.gzのインストールについてはチュートリアルの通りに実施したところ、新しいのが入っているよというエラーになったのそのままにしている
- libqteは置き換えバージョンが出ているので換えた方が良いのかもしれない(←換えないほうが良い、換えるとエミュレーション環境でリンクできなくなる)
- シャープライブラリはお好みで(まだ入れていない)
- sharpsdk-pub-20021227.tar.gzをいれると新しいtmakeが入るらしい、こちら参照 ('06/11/12)
- /opt/Qtopia/tmake/lib/qws/linux-x86-g++/tmake.confのTMAKE_LIBS_QT行に「-lqpe」を追加。同linux-sharp-g++/tmake.confも同様に修正
- dev-x86-qpe.shはprogenやgcc2.95へのパスを通したので以下の様にした
#!/bin/bash CROSSCOMPILE=/opt/Embedix/tools QPEDIR=/opt/Qtopia QTDIR=/opt/Qtopia GCCPATH=/opt/gcc PATH=$QTDIR/bin:$QTDIR/sharp/bin:$CROSSCOMPILE/bin:$GCCPATH/bin:$PATH:/opt/Qtopia/tmake/bin TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-x86-g++/ LD_LIBRARY_PATH=$QTDIR/lib:$CROSSCOMPILE/lib:$LD_LIBRARY_PATH export QPEDIR QTDIR PATH TMAKEPATH LD_LIBRARY_PATH echo "Altered environment for sharp Zaurus Development x86"