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
데비안은 이제 공식적으로 크로스 툴체인을 포함하지만 다음 안정 릴리스(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..."). 컴파일은 자동으로 툴체인을 사용합니다(컴파일된 출력에서 툴체인이 사용되고 있음을 볼 수 있습니다)