PDAのひとりごと

黄昏時、携帯情報端末は薄闇の向こうに何を見るのか

ぺんぎん恐竜にコンパイラ2

2005-08-21 00:05:00 | PDA
今日は、みっきゅんに会いに行く隙間の時間に、zgccインストールの再チャレンジをしました。

そもそも、昨日の失敗は、この(↓)サイトからDLできるのがipkファイルというところが問題でした。
http://www.killefiz.de/zaurus/showdetail.php?app=761

ということで、これは忘れて、ググった結果出てきたこちらのサイトを参照しました。
「MakiWiki ZGCC2インストール」
http://www.makichan.jp/home/index.php?ZGCC2%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB

ここからリンクのあるこちらのサイトから念願のcramfsファイルを得ることができました。
「Zaurus Onboard Development Tools 」
http://s91215199.onlinehome.us/zaurus/

zgcc2Bin.cramfs
zgcc2Inc.cramfs
zgcc2install.html

リナザウからだとDLできなかったのでPCでDLし、CFカード経由でリナザウにコピーしました。
今まで見つからなかったcramfsファイルというのはこれのことだったんですね。

幾度か試した結果、以下のシェルスクリプトファイルをあらかじめ作成しておくと簡単に行くというのも分かりました。

ファイル名: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

このファイルは、Windowsマシンで作成した場合、改行コードが違っていて後ではまる羽目に陥るので、改行コードをLFにしておく必要があります。私はそれに気付かず時間を取られました。

次に、ターミナルを起動し、ルート権限になります。

$ su
# bash

インストールの為のディレクトリを作成します。

# cd /usr/local
# mkdir zgcc2
# mkdir .zgcc
# mkdir .include

ディレクトリを作成したら zgcc2Bin.cramfs と zgcc2Inc.cramfs を /usr/local/zgcc2 ディレクトリへコピーします。
fdを起動してコピーするのが楽でしょう。

cramfsファイルをマウントします。
これには、あらかじめ作成したmntzgcc.shを実行するだけですみます。

# source mntzgcc.sh

これで、.zgccと.includeの中に必要なファイルが見えるようになります。
パスや環境変数を設定するにはzgcc.shを使用します。

# source zgcc.sh

これで、gccが使えるようになります。

このmntzgcc.shとzgcc.shは /usr/local/bin ディレクトリへコピーしておきます。
後は /usr/local/.zgcc/tmake/lib/sharp-onboard/tmake.conf をいじって tmake を使えるようにします。


変更前: TMAKE_INCDIR_QT = /mnt/card/.include/Qtopia
変更後: TMAKE_INCDIR_QT = /usr/local/.include/Qtopia

変更前: TMAKE_INCDIR_QTOPIA = /mnt/card/.include/Qtopia/qpe
変更後: TMAKE_INCDIR_QTOPIA = /usr/local/.include/Qtopia/qpe

要するに、/mnt/cardを/usr/localに変更するわけです。

(8/30削除:これをするとファイルが壊れるような気がする。。。)

展開した方がマウントの手間を省けそうですが、とりあえず動いているので良しとします。

最初の起動時には、「source mntzgcc.sh」でマウントします。
コンパイルしたい時には、ターミナルを開いて

$ su
# bash
# source zgcc.sh

とします。

あとはソースファイルを

# gcc a.c

のようにするとコンパイルが行えます。

最新の画像もっと見る

11 コメント

コメント日が  古い順  |   新しい順
しぶきさんお助け (みつき 桜一)
2005-08-26 17:59:08
>このmntzgcc.shとzgcc.shは /src/local/bin ディレクトリへコピーしておきます。

 このディレクトリって、suを宣言しているのでルートからっていうことですよね?

 ということは、3000では/src以下のディレクトリが存在しないので作らなければいけないということあっていますよね?

 unix osはユーザー如何でどこがルートになっているのかが変わるのでこのあたりが面倒ですよね(^^;



#FDcloneってMDコマンドって何のキーに割り当てられていました?

#うっ、なにげに教えて君になってしまっているのが嫌だなぁ(笑
返信する
3000と3100は違うの? (しぶき)
2005-08-27 01:08:58
ということはないはずなので・・・。



ごめんなさい、記述ミスです。

正しくは、/usr/local/bin です。



fdのmkdirは[k]になります。



返信する
修正 (しぶき)
2005-08-27 01:17:00
ということで、該当個所を修正しておきました。

返信する
ありがとうございます (みつき 桜一)
2005-08-27 01:33:13
 あと、tmake.confファイルのコメントアウトは"#"ヘッダでo.k.でしょうか?

 というか、答えを待っている時間が惜しいのでする気満々です(汗
返信する
―――と、思ったら (みつき 桜一)
2005-08-27 01:49:36
 "tmake.conf"をZediterで編集して保存しようとしたらエラーが出て、とりあえずいったん終了させてから[新規ファイル]を選んでから再び"tmake.conf"を読み込んだら中身が空っぽでした(T_T

 今日のところは時間が時間なのであきらめます。

 そして明日、コピーから再出発したいと思います。

 健闘を祈っていてくださいませ(苦笑。
返信する
そうですね (しぶき)
2005-08-27 03:37:19
コメントは#です。

作業はrootで行ってください

返信する
一時お手上げ(汗 (みつき 桜一)
2005-08-28 10:05:01
 どうしても"tmake.conf"を書き直せなくて困っていたのですが、再起動をかけると".zgcc"以下のディレクトリって消えてませんか?



 もしかすると、再起動をかけるたびにマウントしなおさなきゃダメってこと?



 それ以前に、私の方は"tmake.conf"を書き直さないといけないのだけど(汗



#どうも"所有者:zaurus"、"所有グループ:qpe(だったかな?^^;)"になっているらしいです。
返信する
そこまで分かっていれば (しぶき)
2005-08-28 13:00:25
このやり方は、圧縮されたファイルcramfsを使用している為、最初に使う時に一度だけマウントする必要があります。

マウントして初めて中身が見えるようになるわけです。



マウントは、どっかに設定ファイルがあるのでそこに書き込めばいいのは分かっていますが、そこまではまだやってません。



root権限は、全てのファイルを操作可能です。

返信する
ん? (しぶき)
2005-08-28 13:35:36
上の書いてて、矛盾に気付きました。

cramfsファイルの中身なんだから、tmake.conf の書き換えができるんだっけ?



ということで見直したら書き換わってなかったので、編集したら・・・中身が消えて、その後全然だめに・・・。



もう一回やり直しか・・・。

返信する
Unknown (みつき 桜一)
2005-09-01 21:10:22
>root権限は、全てのファイルを操作可能です。

 そのはずですよね。

 私も書きかえれないのは変だなぁ?とか思っていたのですがね。

 ZEditerでは「Write Error!!!」が出てメッセージが「stream : Please investigate the file. . .」と出て書き込めなくて、おまけにこの後Obyteのファイルになってしまいます。



 今は一時棚上げ状態です(笑
返信する

コメントを投稿