![debianstretch에 gcc 4.9arm 크로스 컴파일러를 설치하는 방법](https://linux55.com/image/92251/debianstretch%EC%97%90%20gcc%204.9arm%20%ED%81%AC%EB%A1%9C%EC%8A%A4%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%EB%9F%AC%EB%A5%BC%20%EC%84%A4%EC%B9%98%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
데비안 "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.
처음 두 개의 실패한 패키지는 설치될 수 있다고 생각하므로 필요한 경우 수동으로 설치할 수 있지만 세 번째 패키지는 존재하지 않는 것 같습니다.
이 시스템에서 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
.)