Debian "stretch"にはgccバージョン5および6用のクロスコンパイラが組み込まれていますが、明らかにgcc-4.xパッケージには基本アーキテクチャのみが含まれています。残念ながら、4.xよりも高いgccバージョンでビルドできない古いLinuxカーネルヘッダファイルに依存するソフトウェアをコンパイルする必要があるので、最終的にはよりinclude/compiler-gcc<major-version>.h
高いバージョン番号に存在しないファイルを含めようとします。
「embedian」リポジトリを試してみましたが、「wheezy」、「jessie」、および「unstable」のバージョン分岐だけがあるため、「unstable」がストレッチへの古い参照であると仮定してみましたが、それはできないようです。便利なものをインストールするよう説得しないでください。私が得るエラーは次のとおりです。
The following packages have unmet dependencies:
gcc-4.9-arm-linux-gnueabihf : Depends: cpp-4.9-arm-linux-gnueabihf (= 4.9.2-16) but it is not going to be installed
Depends: libgcc-4.9-dev:armhf (= 4.9.2-16)
Depends: libisl13 (>= 0.10) but it is not installable
Recommends: libc6-dev:armhf (>= 2.13-5)
E: Unable to correct problems, you have held broken packages.
最初の2つの失敗したパッケージはインストールできると思うので、必要に応じて手動でインストールできますが、3番目のパッケージは存在しないようです。
このシステムでarm-linux-gnueabihfに対して動作するgcc-4.9(または以前)クロスコンパイラを取得する方法についての提案はありますか?
答え1
Emdebianは2014年11月にメンテナンスを中止しました。見つかった利用可能なパッケージが利用可能ですlibisl13
スナップショットから。
それ以外の場合は、このパッケージを使用してクロスコンパイラを構築し、gcc-4.9
次をdpkg-cross
参照できます。README.cross
もっと学ぶ。デフォルトでは、binutilsと適切なライブラリパッケージを交差させる必要があります(JessieまたはStretchの複数のアーキテクチャパッケージは変換せずに機能する必要がありますdpkg-cross
)。
apt-get source gcc-4.9
cd gcc-4.9-4.9.4
GCC_TARGET=armhf dpkg-buildpackage -us -uc
そのようなgcc-4.9
パッケージは、代わりに一般的なマルチアーキテクチャに移行するため、dpkg-cross
いくつかの問題が発生する可能性があります。 (変換はgcc-5
およびパッケージで行われましたgcc-6
。)