医療とザウルス奮闘記~PDAの活用術

医療現場でのPDA(Personal Digital Assistance)利用法について紹介するサイトです。従来のPalm OS機(クリエ)ではなくLinux OS機(Linux Zaurus SLC-XXX)を使い、独自のアイデアを投稿していきたいと思っています。このサイトはリンクフリーです。相互リンクをご希望の方はコメント欄にその旨お願いしますm(_ _)m なお、このブログの詳しいまとめサイトを用意しています。初めてザウルスを導入される方は、最初にここを一読されのがオススメです。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) |
以前より紹介している、Qt Reference Documentationは、 Qtのリリースにあわせ、いろいろなバージョンがあり、どこを参照してよいのか迷ってしまうときがあります。これについて少し解説したいと思います。
  • <本家>
    http://doc.trolltech.com/
    Qtを出している本家Trolltechのトップページです。ただし全て英語。
  • <ザウルス開発用バージョン>
    リナックスザウルスで開発する際に最も近いバージョン。ここに書かれているAPIはほぼ全て使用可能かと思います。ただしこれも全て英語。
  • <Qtopia 1.7>Qtopia1.7
    リナックスザウルスに搭載されているQtopiaの一つ新しいバージョンのようです。
  • <日本語訳Qt2.3.2>
    Qt 2.3.2の日本語訳です。はじめはまずこのページのサンプルなどをみるとイメージが掴みやすいと思います。
  • <日本語訳Qt3.0>
    日本語訳版の中ではおそらく一番新しいバージョンのQtを解説しています。ただし、本家英語版では4.0がリリースされているようです。

私はザウルスで暇な時にコードを打ち込む際は、これらのDocumentを巡集で落として、説明やサンプルを確認しながら(あるいはコピー&ペーストで利用しながら)開発をしているのでとても便利ですヽ(´ー`)ノ
スポンサーサイト
以前紹介したQt Reference Documentationを参考にソフト開発に挑戦してみているが、言われた通りに作ってできるツールとまったくできないものがある。まいったな…。
シャープから提供されているQtopia開発チュートリアル
を読んでみないといけないのかな?46ページもあるんだよな…

ついでにSLシリーズ関連 クラスライブラリリファレンスでクラスの説明も行ってた…それにしても道のりは長いな…
昔から伝統的(?)にアプリの最初はHelloアプリと決まっているそうなので、取りあえずそれに従いたいと思います

参考にしたのはQt Reference Documentation Qt3.0Qt Reference Documentation 2.3.2のチュートリアルにあるHelloWorld!です

まず適当な場所にhelloディレクトリを作ります。
その下にザウルスの適当なエディタで
#include <qpe/qpeapplication.h>
#include <qpushbutton.h>

int main(int argc, char** argv)
{
QPEApplication a(argc, argv);
QPushButton hello("Hello,Dr.Foo!", 0);
hello.resize( 200, 60 );
a.setMainWidget( &hello );
hello.show();
return a.exec();
}
と打ち込みmain.cppと言う名前で保存します。

次に再びエディタで
TEMPLATE = app
CONFIG = qt warn_on release
HEADERS =
SOURCES = main.cpp
INTERFACES =
INCLUDEPATH += $(QTDIR)/include
DEPENDPATH += $(QTDIR)/include
LIBS += -lqte -lqpe
と打ち込みhello.proという名前で保存します。

ターミナルを立ち上げ
$ source zgcc.sh
と打ち込み
helloディレクトリに移動します。
$ cd /hdd3/hello(私の場合/hdd3/helloだったので)
$ tmake -o Makefile hello.pro
と打ち込みます。すると/hdd3/helloにMakefileができあがっているはずです。そして
$ make
と打ち込めばコンパイルできるはずです。
$ ./hello
と実行すればうまくいけば下のように表示されるはずです

pear
昨日のやり方では少し行き詰まったので
別の方法でC/C++の開発環境を再構築することにしました
最初はZaurus Onboard Development Tools
からzgcc2Bin.cramfsとzgcc2Inc.cramfsをダウンロードしてきます。

次にTree!Explorer QTにルート権限を与えて/usr/local/の下にtmpとzgccという名前でフォルダをを作り/usr/local/zgcc/の下にincludeの名前のフォルダを作ります
次にzgcc2Bin.cramfsとzgcc2Inc.cramfsを/usr/localに移動させます。私はTree!Explorer QTで移動させました。

次にターミナルを立ち上げ
$ su
# cd /usr/local(/usr/localのディレクトリに移動する以下すべてこのディレクトリで進みます)
# mount -t cramfs zgcc2Bin.cramfs tmp -o loop
# cp -rp tmp/* zgcc/(tmpに展開されたものすべてを/usr/local/zgccに移動します)
# umount /usr/local/tmp
同様にzgcc2Inc.cramfsも処理します。
# mount -t cramfs zgcc2Inc.cramfs tmp -o loop
# cp -rp tmp/* zgcc/include/
# umount /usr/local/tmp
tmpフォルダはもういらないので消してくれてもいいです。

そして昨日と同様にシェルスクリプトを作るのですが、
今回はmntzgcc.shはいりません。/usr/local/zgcc/mntzgcc.shも消してくれてもいいです。
もう一つのzgcc.shの方は同様に/usr/local/binの中に作ります。適当なテキストエデェタでできると思います。

zgcc.sh:

export GCC_EXEC_PREFIX=/usr/local/zgcc/lib/gcc-lib/arm-linux/2.95.2/
export COMPILER_PATH=/usr/local/zgcc/lib/gcc-lib/arm-linux/2.95.2/
export CPATH=/usr/local/zgcc/include/
export LIBRARY_PATH=/usr/local/zgcc/lib/:/usr/local/zgcc/lib/gcc-lib/arm-linux/2.95.2/:/lib/:/home/QtPalmtop/lib/
export CPLUS_INCLUDE_PATH=/usr/local/zgcc/include/g++-3/
PATH=/usr/local/zgcc/bin:$PATH
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/zgcc/lib
export LD_LIBRARY_PATH
TMAKEPATH="/usr/local/zgcc/tmake/lib/sharp-onboard/"
export TMAKEPATH
ln -sf /usr/local/zgcc/bin/libstdc++-3-libc6.1-2-2.10.0.so /home/QtPalmtop/lib/libstdc++-libc6.2-2.so.3
ln -sf /lib/libc.so.6 /usr/lib/libc.so
ln -sf /lib/libm.so.6 /usr/lib/libm.so

次に昨日行き詰まったところです。
/usr/local/zgcc/tmake/lib/sharp-onboard/tmake.confの編集です。
適当なテキストエディタでtmake.confを立ち上げおよそ35行目ぐらいにある
TMAKE_INCDIR_QT = /mnt/card/.include/Qtopia を
TMAKE_INCDIR_QT = /usr/local/zgcc/include/Qtopia
とかえ
TMAKE_INCDIR_QTOPIA = /mnt/card/.include/Qtopia/qpe を
TMAKE_INCDIR_QTOPIA = /usr/local/zgcc/include/Qtopia/qpe
と変えます。これで準備完了だと思います。

ここで一度
suでsuper userモードで入り、
zgcc.shと打ち込んでパスを通しておきます。
その後、exitで通常userに戻り、
$ source zgcc.sh
と打ち込めばコンパイルできる環境になると思います。

試しにエディタを立ち上げ

#include <stdio.h>
int main(){
printf("Hello Dr.Foo\n");
return 0;
}

と打ち込んで「hello.c」という名前でusr/localの下に保存して
ターミナルで
$ gcc -o hello /usr/local/hello.c
と打ち込めばhelloという実行可能なファイルができるので
$ ./hello
と打ち込めば…
Hello Dr.Foo
と表示されれば成功です

たぶんこれでC/C++開発環境は整ったはずです

なにか間違ったことや気づいたことがあれば
指摘してください
ザウルス(SL-C3000)でC/C++の開発環境を作ってみたいと思います
まず
Zaurus Onboard Development Tools
からzgcc2Bin.cramfsとzgcc2Inc.cramfsをダウンロードしてきます。

zgcc2Bin.cramfsとzgcc2Inc.cramfsはディスクイメージなので適当なところにマウントして使います。
そこでマウントポイントとなるディレクトリをどこかに作らなければなりません。
個人の好みで設定されたらいいのですが
私は/usr/local/の下にzgcc2を作り他にも.zgcc と.includeの3種類作りました。この位置では当然Root権限を持たなければ作れないようです。

ディレクトリの作り方ですが、Windowsユーザーの私はTree!Explorer QTにルート権限を与えに/usr/local/の下にフォルダを作ればおしまいです。
ターミナルから作る場合は
$ su (これでRoot権限を取る)
# mkdir /usr/local/zgcc2 (mkdirはディレクトリを作るコマンド)
# mkdir /usr/local/.zgcc
# mkdir /usr/local/.include
で良いと思います。
次にzgcc2Bin.cramfsとzgcc2Inc.cramfsを/usr/local/zgcc2に移動させます。私はTree!Explorer QTで移動させました。

次にターミナルを立ち上げ
$ su
# mount -t cramfs /usr/local/zgcc2/zgcc2Bin.cramfs /usr/local/.zgcc -o loop
# mount -t cramfs /usr/local/zgcc2/zgcc2Inc.cramfs /usr/local/.include -o loop
すると/usr/local/.zgccにいろいろなファイルができていると思います。これがコンパイラやライブラリだと思います。

そして次のようなシェルスクリプトmntzgcc.shとzgcc.shを/usr/local/binの中に作ります。適当なテキストエデェタでできると思います。

mntzgcc.sh:(この名前で保存してください)

mount -t cramfs /usr/local/zgcc2/zgcc2Bin.cramfs /usr/local/.zgcc -o loop
mount -t cramfs /usr/local/zgcc2/zgcc2Inc.cramfs /usr/local/.include -o loop

zgcc.sh:

export GCC_EXEC_PREFIX=/usr/local/.zgcc/lib/gcc-lib/arm-linux/2.95.2/
export COMPILER_PATH=/usr/local/.zgcc/lib/gcc-lib/arm-linux/2.95.2/
export CPATH=/usr/local/.include/
export LIBRARY_PATH=/usr/local/.zgcc/lib/:/usr/local/.zgcc/lib/gcc-lib/arm-linux/2.95.2/:/lib/:/home/QtPalmtop/lib/
export CPLUS_INCLUDE_PATH=/usr/local/.include/g++-3/
PATH=/usr/local/.zgcc/bin:$PATH
export PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/.zgcc/lib
export LD_LIBRARY_PATH
TMAKEPATH="/usr/local/.zgcc/tmake/lib/sharp-onboard/"
export TMAKEPATH
ln -sf /usr/local/.zgcc/bin/libstdc++-3-libc6.1-2-2.10.0.so /home/QtPalmtop/lib/libstdc++-libc6.2-2.so.3
ln -sf /lib/libc.so.6 /usr/lib/libc.so
ln -sf /lib/libm.so.6 /usr/lib/libm.so

これで殆どできたと思います。
ターミナルから
$ su
# mntzgcc.sh
と実行したのち
ユーザーZaurusに戻って
$ source zgcc.sh
と打ち込めばコンパイルできる環境になると思います。

試しにエディタを立ち上げ

#include <stdio.h>
int main(){
printf("Hello Dr.Foo\n");
return 0;
}

と打ち込んで「hello.c」という名前でusr/local/zgcc2の下に保存して
ターミナルで
$ gcc -o hello /usr/local/zgcc2/hello.c
と打ち込めばhelloという実行可能なファイルができます
そこで
$ ./hello
と打ち込めば…
Hello Dr.Foo
と表示されればコンパイル成功だと思いますw

やっとソフト開発に一歩前進ですか…
まあC/C++で作る可能性低いけど…

適当にやっているうちに
いつの間にかできたところもかなり多いので
ご指摘があればよろしくお願いします。
Fedora Core4を母艦にしてQtopiaでアプリケーションは作れないかとインストール。取りあえず、カスタムでインストールして開発環境は全部インストール。取りあえずFedoraは動き出した。
おっ!アプリの確認だな。アプリケーション→プログラミング→Qt Designerってのがあるではないか!きっとQtopiaのツールだ!これだこれ…あれ?
20050704000838.jpg

なにかおかしいぞ…こんなに種類があるのは…??
とっ取りあえず…Dialog with Buttons(Bottom)をクリック…おっ…いけそうな雰囲気かも…
QT.jpg
ふ~ようわからん…○┼< バタッ
こりゃC/C++から勉強しないといけないのかな?
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。