ubuntu で Qt/E 開発

めざせ Zaurus で GoogleMap ということで、ひとまず開発環境を整えないとです。

SLザウルスが出たのがだいぶ昔なので、Ubuntu に開発環境を構築できるのか? という心配もありましたが、なんとか一応開発できる環境が整いました。

ただ、色々試してみたのですが、x86環境でデバッグするためのqvfb用のバイナリがコンパイルエラーで作れませんでした。ホストの gcc が 2.96 じゃないとコンパイルできないようです。

でも、それじゃいちいち実機でデバッグしないといけなくなるので、qvfbを使わずに x86 上である程度デバッグできるように工夫してみました。

ちなみに使用した OS は Ubuntu 8.04 です。

1. ダウンロード

必要なものをダウンロードします。

ザウルスサポートステーションLinux関連 開発ツール一覧より

ザウルスサポートステーションライブラリリファレンスより

X/Qt Server Projectより (Trolltech社のサイトにはもうありませんでした)

以下は必須ではありませんが、開発入門として参考になるドキュメントです。

2. インストール

Ubuntu はdebian 系なので、一般的には alien を使って rpm を deb パッケージに変換してインストールするのが普通なのですが、私は面倒なので、rpmでインストールしてしまいました。

まずrpmをインストールします。

$ sudo apt-get install rpm 

rpmデータベースを作成し、rpm によるインストールを可能にします。

$ sudo mkdir /var/lib/rpm
$ sudo rpmdb --initdb

上でダウンロードしたrpmをインストールします。qtopia-free だけ依存関係のエラーがでるので–nodepsで強制インストールします。

$ sudo rpm -ivh binutils-cross-arm-2.11.2-0.i386.rpm
$ sudo rpm -ivh gcc-cross-sa1100-2.95.2-0.i386.rpm
$ sudo rpm -ivh glibc-arm-2.2.2-0.i386.rpm
$ sudo rpm -ivh linux-headers-arm-sa1100-2.4.6-3.i386.rpm
$ sudo rpm -ivh --nodeps qtopia-free-1.5.0-1.i386.rpm

Qtopia に 対して Zaurus 用の差分を追加します。libqte も差し替えます。

$ cd /opt/Qtopia
$ sudo tar xzf ??????/sharpsdk-pub-20021227.tar.gz
$ cd /opt/Qtopia/sharp/lib
$ mv libqte.so.2.3.2 libqte.so.2.3.2-bak
$ sudo cp ??????/libqte.so.2.3.2.gz .
$ sudo gzip -d libqte.so.2.3.2.gz 

tmake の設定ファイル(?)を差し替えます。

$ cd /opt/Qtopia/tmake/lib/qws/
$ sudo rm -rf linux-sharp-g++
$ sudo tar xzf ???????/tmake-sharp.tar.gz

以上でインストールは完了です。

3. 設定スクリプトの編集

ビルドする際に必要な環境変数等を設定するスクリプトが /opt/Qtopia/dev-arm-qpe.sh にあります。

このファイルのままでは、tmake にパスが通っていないため、tmake のパスを追加しておきます。

#!/bin/bash
CROSSCOMPILE=/opt/Embedix/tools
QPEDIR=/opt/Qtopia/sharp
QTDIR=/opt/Qtopia/sharp
PATH=$QTDIR/bin:$QPEDIR/bin:$CROSSCOMPILE/bin:$QPEDIR/bin:/ope/Qtopia/tmake/bin:$PATH
TMAKEPATH=/opt/Qtopia/tmake/lib/qws/linux-sharp-g++/
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
PS1='!sharp-dev-arm\u@\h:\w\$ '
export QPEDIR QTDIR PATH TMAKEPATH LD_LIBRARY_PATH PS1

これで arm バイナリをビルドする環境が整いました。

長くなったので、x86環境などの続きはまた今度。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です