0

Mikhail Kupchik のチュートリアルを使用して、Windows 用のラズベリー パイ クロスツールチェーンを構築しています。最近のパッケージの使用に関連する問題を回避するために、Cygwin Time Machineを使用しました。私が入手したパッケージはここにリストされています。

マニュアルに従って、Windows XP を VirtualBox にインストールし、必要なすべてのアーカイブをダウンロードしました。ビルドを準備するための手順を 1 つのシェル スクリプトにまとめました。

#!/bin/bash

cd /opt/crosstool/src
for i in `ls -1 *.tar.gz`
do
    tar -xf $i
    rm -f $i
done

mkdir patches
mv *.diff patches

mkdir -p /opt/crosstool/gcc-4.6.3-eglibc-2.13/arm-linux-gnueabi
mkdir /opt/crosstool/gcc-4.6.3-eglibc-2.13/arm-linux-gnueabihf

cp -r gcc-4.6.3 gcc-4.6.3.noarmhf
cd gcc-4.6.3
cat ../patches/gcc--armhf-triplet.diff | patch -p2
cat ../patches/gcc--arm-dynamic-linker.diff | patch -p2
cat ../patches/gcc--arm-multilib-defaults.diff | patch -p2
cd ../eglibc-2.13
cat ../patches/eglibc--remove-manual.diff | patch -p1
cat ../patches/eglibc--cross-cygwin.diff | patch -p1
cd ..
cp -r eglibc-2.13 eglibc-2.13.noarmhf
cd eglibc-2.13
cat ../patches/eglibc--armhf-triplet.diff | patch -p1
cat ../patches/eglibc--armhf-linker.diff | patch -p1
cat ../patches/eglibc--ldconfig-cache-abi.diff | patch -p1
cat ../patches/eglibc--soname-hack.diff | patch -p1
cd ..
tar -h -zcf gcc-4.6.3-all.tar.gz \
    gcc-4.6.3 gcc-4.6.3.noarmhf

replace () {
    for i in extra-lib.mk Makeconfig Makerules linuxthreads/Makefile \
             nptl/Makefile sysdeps/i386/i686/Makefile sysdeps/sparc/sparc32/sparcv9/Makefile
    do
        sed -i.bak s/\.oS/\.oZ/ $i
    done
}

cd /opt/crosstool/src/eglibc-2.13
replace
cd /opt/crosstool/src/eglibc-2.13.noarmhf
replace

cd /opt/crosstool/src
for i in build-gmp build-mpfr build-mpc build-binutils build-gcc build-eglibc build-linux
do
    mkdir $i
done

次に、一撃でビルドを実行しますfor i in ``seq 1 4``; do ./build_gcc_cross_$i.sh; done。スクリプトには、チュートリアルからのビルドセットも含まれています。リスト: 1 (オリジナル) 2 (オリジナル) 3 (オリジナル) 4 (オリジナル)

最初の 3 つのビルドセットはうまくいきます。しかし、4番目は失敗します。コンソールには、大量の「ファイルが見つかりません」というエラーが表示されます。喜んで、完全なstout+stderrconfig.logを提供します。

私の問題について何か助けていただければ幸いです。

4

1 に答える 1

0

残念なことに、3 番目のスクリプトの出力を正しく読み取らず、エラー メッセージを見落としていました。

/bin/sh: perl: Command not found.

これはおそらく、スクリプトの出力が次のようになったためです。

=== build script: OK ===

そのとき、スクリプトでエラー処理が完全に不足していることに気付きました。

perl をインストールしたら、クロスコンパイル環境の構築に進むことができました。

于 2015-07-30T01:01:46.610 に答える