Debian
如何在 debian stretch 上安裝 gcc 4.9 arm 交叉編譯器
Debian “stretch” 內置了 gcc 版本 5 和 6 的交叉編譯器,但顯然只在其 gcc-4.x 包中包含本機架構。不幸的是,我需要編譯依賴於舊 Linux 核心標頭檔的軟體,這些文件無法使用 4.x 之後的 gcc 版本建構(他們最終試圖包含一個
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.
我相信前兩個失敗的軟體包可以安裝,所以如果需要我可以手動安裝,但第三個似乎在我看的任何地方都不存在。
有什麼建議可以讓我在這個系統上為 arm-linux-gnueabihf 獲得一個工作的 gcc-4.9(或更早版本)交叉編譯器嗎?
libisl13
Emdebian 於 2014 年 11 月停止維護。您可能能夠從快照中獲取您發現可以使用的軟體包。否則,您可以使用該包建構一個交叉編譯器,
gcc-4.9
並且可能dpkg-cross
; 詳情見README.cross
。基本上,您需要 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
包是過渡到普通 multiarch 而不是 的過程中的一部分dpkg-cross
,因此您可能會遇到一些問題。(過渡在gcc-5
andgcc-6
包中完成。)