残念ながら、Git を ARMv6 アーキテクチャ用にクロスコンパイルするのに苦労しています。
しかし、実行した手順と入力したコマンドについて説明する前に、ビルド環境について簡単に説明する必要があります。
- Ubuntu 12.10 64 ビットでクロスコンパイルしています。
- クロス コンパイラは
/home/my_name/cctoolchain
(このディレクトリには 、 などが含まれますbin/
) にlib/
インストールされます。
ここから Git 1.8.2 を取得することから始めました。私が実行したディレクトリを抽出した後:
export PATH=$PATH:/home/my_name/cctoolchain/bin
また、それが最新autoconf
であることを確認するために実行しました。次に、次のよう./configure
に呼び出しました。./configure
./configure --prefix=/home/my_name/git-arm --build=x86_64-linux-gnu --host=arm-linux-androideabi
これは数秒間実行された後、次のように中止されました。
システムが fopen されたディレクトリの読み取りに成功したかどうかを確認しています... configure: エラー: `/home/my_name/git-1.8.2' で: configure: エラー: クロス コンパイル中にテスト プログラムを実行できません
806 行から 825 行をクラックconfigure.ac
して削除し、テストを無効にしました。それを行った後、同様の理由で 806 ~ 839 行も削除する必要がありました。
この時点で、./configure
スクリプトは完了できました。私は興奮しmake
て Git をビルドしようとしましたが、しばらくすると次のエラーが発生しました。
fetch-pack.c: 関数 'fetch_pack' 内: fetch-pack.c:928:16: エラー: 'struct stat' には 'st_mtim' という名前のメンバーがありません make: *** [fetch-pack.o] エラー 1
なんとなく「やり方が悪い」と感じる。これは、 から手動でテストを削除するよりもはるかに簡単なように思えますconfigure.ac
。私は何が欠けていますか?