hakeの日記

Windows環境でプログラミングの勉強をしています。

Cygwin上のクロスコンパイル環境

最初にググってみつけた幾つかのサイトを参考にgcc3系のザウルス用クロスコンパイル環境を構築しようと思ったのだけど、どうも上手くいかない。諦めてgcc2.95系の環境を構築。
QtopiaSDK on Cygwinに記述されている内容をそのまま実行。


ファイルの入手先

qtopia-free-1.5.0-1.src.rpmrpmコマンドで展開できなかったので、Windows上のツールで展開してqtopia-free-1.5.0.tar.gzを取得。

追記

/opt/Qtopia/tmake/lib/qws/linux-sharp-g++/tmake.sonfを要修正(qpeを追加)

TMAKE_LIBS_QT = -lqte -lqpe
TMAKE_LIBS_QT_THREAD = -lqte-mt -lqpe-m ←こちらは自信なし


環境変数の設定、dev-arm-qpe.shの実行は頭の「.」(ピリオド)を忘れずに

$ . ~/SLZaurus/bin/dev-arm-qpe.sh

あとは、progen→tmake→makeでコンパイル



Cygwin上でのエミュレーション環境は上手く動作しませんでした。なぜかstartx_qvfbでX+twmが起動せず、別途Xを起動してstartqpeすると何とかdllが無いと怒られました。


QtopiaのサンプルプログラムとZEditorは上記の環境で動作しました、流石にPC上だとコンパイルが早いですねー
hello.cをprogen,tmakeでmakeするとエラーになったので作成したMakefileのLIBS行の「-lqte」を削除する。




以下、自分用に参考先の内容を丸ごとコピー
クロスコンパイラ
$ cd /
$ tar xvjf binutils-cross-arm-2.13.i386-cygwin.tar.bz2
$ tar xvjf gcc-cross-sa1100-2.95.3-i386-cygwin.tar.bz2

クロスコンパイル用ライブラリ類
$ rpm -iv --ignoreos linux-headers-arm-sa1100-2.4.6-3.i386.rpm
$ rpm -iv --ignoreos glibc-arm-2.2.2-0.i386.rpm

クロスコンパイル用QtopiaSDK展開
$ rpm -iv --ignoreos --nodeps qtopia-free-1.5.0-1.i386.rpm
$ mv /opt/Qtopia/bin /opt/Qtopia/bin.linux
$ mv /opt/Qtopia/lib /opt/Qtopia/lib.linux

エミュ用QtopiaSDK展開(不要?)
$ cd /
$ tar xvjf qtopiasdk-gcc33-i386-cygwin-20040517.tar.bz2
$ mv /opt/Qtopia/lib.linux/fonts /opt/Qtopia/lib

tmake設定ファイル展開
$ cd /opt/Qtopia/tmake/lib/qws
$ tar xvzf tmake-sharp.tar.gz
$ cd /opt/Qtopia/tmake/lib
$ tar xvjf tmake-conf-cygwin.tar.bz2

環境設定ファイル展開
$ mkdir ~/SLZaurus/bin
$ cd ~/SLZaurus/bin
$ tar xvzf config-examples.tar.gz

シャープライブラリインストール
$ tar xvzf sharpsdk-pub-20021227.tar.gz
$ mv /opt/Qtopia/sharp/lib /opt/Qtopia/sharp/lib.bak
$ cp -R sharp/lib /opt/Qtopia/sharp/lib
$ mv /opt/Qtopia/sharp/lib.bak/fonts /opt/Qtopia/sharp/lib/
$ cp -R include/sl /opt/Qtopia/include/ 
$ mv /opt/Qtopia/sharp/lib/libqte.so.2.3.2 /opt/Qtopia/sharp/lib/libqte.so.2.3.2.bak
$ gunzip libqte.so.2.3.2.gz
$ cp libqte.so.2.3.2 /opt/Qtopia/sharp/lib/