
amd64(Debianテスト「jessie」)で私のARMシステム用のLinuxカーネルを構築できるようにクロスツールチェーンをインストールしようとしています。次の項目がありますsources.list
。
deb http://www.emdebian.org/debian sid main
インストールしようとするとgcc-4.7-arm-linux-gnueabiエラーが発生します。
cc-4.7-arm-linux-gnueabi: libgomp1-armel-cross (>=4.7.2-5) に依存しますが、インストールされません。
libgomp1-armel-クロスこれは順番にgcc-4.8-base-armel-crossこれはどこにも見つかりません。
ある時点では、同じリポジトリにこれらのクロスビルドツールをインストールし、数週間前に現在これらのARMシステムで実行されているカーネルを構築した。このリポジトリに問題がありますか?私は他のいくつかのバージョンのGCCを試してみましたが、まだ同じ問題があります。
あまり理想的ではないソリューションは、Ubuntu 12.04 VMでクロスビルドすることです。このディストリビューションは、公式リポジトリにARMクロスコンパイラを提供します。
答え1
stable
リポジトリに組み込まれていないユーティリティ、取り消されたパッケージなどがある可能性があるため、ほとんどの場合、Emdebianリポジトリを使用することをお勧めします。すべてのライブラリに正しい依存関係があるかどうかを確認したい、stable
依存testing
関係の問題がある、または退屈なことが発生する可能性が低いため、お勧めします。
答え2
Debian には正式にクロスツールチェーンが含まれていますが、次の安定リリース (8.0) には含まれません。仮想パッケージの提供。
答え3
安定性は役に立ちません。 4.7〜4.8の矛盾がまだ存在します。これらの不一致はバージョン4.4(ish)から存在しましたgcc
。
答え4
私は「Linux方式」で作業することをお勧めします。これは、自動構成ができるだけ少ないことを意味します。リセラーサイトから必要なツールチェーンをダウンロードし、プロジェクトの作業ディレクトリに.CCファイルを設定します。 CCファイルは次のようにする必要があります。
export PATH=< PATH-TO-TOOLCHAIN-BIN-FOLDER>:${PATH}
export CROSS_COMPILE=< TOOLCHAIN PREFIX` i.e "arm-none-gnueabi-" (the last "-" is important)
export ARCH=< ARCHITECTURE>
これが完了したら、コンパイルを実行する前に "source .CC"を実行してから、通常どおりにコンパイルします(例: "gcc / g ++ / ld ...")。コンパイルは自動的にツールチェーンを使用します(コンパイルされた出力でツールチェーンが使用されていることがわかります)