[Armadillo:01385] Armadillo上で新しいプログラムを試す時
chris mcharg
email@hidden
2006年 11月 17日 (金) 17:12:09 JST
マカーグです。
Armadillo上で今まで利用されなかったプログラムなどを使えるようにするには、クロスコンパイルが必要です。しかし、クロスコンパイルは初心者にとっては非常に難しいです。↓のページがクロスコンパイルの難しさについて説明しています。
<http://www.landley.net/writing/docs/cross-compiling.html> (英語)
最近、私がいろいろなプログラムを試すことになって、その難しさを結構味わえました。とくに、GNUのビルドツールの知識が必要だとよく分かりました。
クロスコンパイルが難しいので、できるだけ小さい段階に分けた方がいいということを分かってきたんです。前から自分のためにこの段階をリスト化しようと思っていたんですけど、他の人のためにもなるかなと思って、メーリングリストに送らせて頂いています。
下は私が利用している方法です。もちろん、毎回全ステップを絶対使う必要はないと思いますが、参考になれば幸いです。
----
1. まずは、通常のLinux PCで利用したいプログラムのパッケージをインストールして試す
* 設定の難しさとクロスコンパイルが難しさを分けることができる
* 使ったことがないなら、設定を間違うことが多いので、絶対動くことを確認してから、Armadillo上で試した方がいい
* 後で設定をそのままArmadilloで使えることもある
2. Debianが動いているArmadillo-9で動作を確認する
* ここでカーネルの設定に問題がないことなどを確認できる
3. プログラムのソースを取得して、ドキュメントを読む
4. 依存するライブラリを調べる
* ソースのドキュメントから
* debianなどのパッケージシステムの依存関係を確認する(apt-cache show <パッケージ名>)
5. ホスト用のライブラリをインストールして、nativeビルドしてから、PCでもう1回試す
* ビルド処理が必要とするプログラムなどがあったりする (debianならapt-get build-dep <パッケージ名> できるけど)
6. Debianが動いているArmadillo-9でも、nativeビルドして、もう1回試す。
7. ターゲット用のライブラリをインストールして、クロスビルドしてみる
* configureがクロスコンパイルに対応していない時が多い
o ホスト用じゃなくてクロスコンパイラが使われていることを確認する
o ターゲット用のライブラリが参照されていることを確認する
o configureがテストプログラムをターゲット用のバイナリにコンパイルして実行しようとするなら。。。
- configureの ac_ 変数によって止めれるなら、実行する時に指定する
- 該当する場所をコメントアウトする
* ソースコードがarmに対応しなかったりする -> 修正必要
8. コンパイルできたら、設定ファイルとバイナリをmake済みのatmark-distのromfsディレクトリの下に置いて、make romfs imageを実行してから、イメージをArmadilloに書き込む
9. Armadilloで試す
* ちゃんと動かない理由:
o 設定がArmadilloにあってない
o Armadilloの設定がPCと違う
o プログラムのソースがarmに対応していない
----
# もし他のアイデアや方法がありましたら、ぜひ教えてください!
armadillo メーリングリストの案内