내 컴퓨터에 AVR 크로스 컴파일러를 설치해야 합니다. crossdev -S avr
예전에 하나 만들었는데 더 이상 작동하지 않습니다 . 다음 메시지가 나타납니다.
종속성 계산* '/var/lib/layman/calculate/cross-avr/binutils/binutils-9999.ebuild'에 대한 요약 누락 * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.9.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.8.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.7.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.6.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.5.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.3.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.2.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.51.0.1.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.1.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.23.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.22.90.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.22.52.0.4.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.22-r1.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.21.1-r1.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.20.1-r1.ebuild'에 대한 요약이 누락되었습니다. * '/var/lib/layman/calculate/cross-avr/binutils/binutils-2.19.1-r1.ebuild'에 대한 요약이 누락되었습니다. ...완성된! !!!"cross-avr/binutils"를 만족시킬 수 있는 모든 ebuild가 차단되었습니다. !!!요청을 완료하려면 다음 차폐 패키지 중 하나가 필요합니다. - cross-avr/binutils-9999::calculate(마스킹: 손상) - cross-avr/binutils-2.23.51.0.9::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.8::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.7::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.6::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.5::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.3::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.2::calculate(마스크: 손상) - cross-avr/binutils-2.23.51.0.1::calculate(마스크: 손상) - cross-avr/binutils-2.23.1::calculate(마스크: 손상) - cross-avr/binutils-2.23::calculate(마스킹: 손상) - cross-avr/binutils-2.22.90::calculate(마스크: 손상) - cross-avr/binutils-2.22.52.0.4::calculate(마스크: 손상) - cross-avr/binutils-2.22-r1::calculate(마스크: 손상) - cross-avr/binutils-2.21.1-r1::calculate(마스크: 손상) - cross-avr/binutils-2.20.1-r1::calculate(마스크: 손상) - cross-avr/binutils-2.19.1-r1::calculate(마스크: 손상)
모든 패키지는 손상으로 가려져 있으므로 일반적인 방법으로는 이를 찾아낼 수 없으며 수동으로 매니페스트를 생성하는 것은 나쁜 습관으로 간주됩니다.
답변1
"요약 누락" 오류가 발생할 수 있는 이유 중 하나(2016년 Gentoo 기준, 2013년에는 이것이 사실인지 알 수 없음)는 Git에서 포티지 트리를 사용하고 있기 때문입니다. ebuild 자체 요약을 포함), crossdev에 대한 재정의는 이를 허용하지 않습니다. 이 경우 추가하는 것만으로 thin-manifests = true
도 $overlay/metadata/layout.conf
문제를 해결할 수 있습니다.
답변2
문제를 해결할 수 있었는지 모르겠지만, 같은 문제가 발생한 다른 사람을 위해 다음과 같이 알려드립니다. 2015년 9월 2일 기준(내 이전 날짜)교차 개발환경) 다음 명령을 실행하면 문제가 없습니다.
USE="-openmp -sanitize" crossdev -t avr -s4 -S --without-headers
후자는 다음에서 발췌됨젠투 아두이노 위키. 반드시 편집 /usr/avr/etc/portage/make.conf
하고 설정하세요 ACCEPT_KEYWORDS="avr"
("~아치"는 stable 브랜치를 선택하더라도 항상 포함됩니다.)
편집하다: 이제 AVR 툴체인을 더 이상 재정의할 필요가 없습니다.
편집하다: AVR의 ldscripts 디렉토리에 심볼릭 링크를 추가해야 할 수도 있습니다.
ln -s /usr/lib64/binutils/avr/2.24/ldscripts /usr/avr/lib/
그렇지 않으면 gcc
다음 오류 메시지가 표시되면서 중단될 수 있습니다.
/usr/libexec/gcc/avr/ld: cannot open linker script file ldscripts/avr4.xn: No such file or directory
이 오류는 Wikipedia의 끝 부분에 언급되어 있지만 어쨌든 이를 지적하기 위해 심볼릭 링크의 약간 변형을 사용했습니다 /usr/lib64/binutils/avr/2.24/ldscripts
.
심볼릭 링크를 추가한 후 ATmega8L용 샘플 코드를 오류 없이 컴파일할 수 있습니다.
답변3
이것이 당신이 찾고 있는 링크입니까(Obi-Wan-Kinobe의 목소리로):http://code.google.com/p/gentoo-avr-gcc/
답변4
이것은 중요한 정보입니다:
!!! All ebuilds that could satisfy "cross-avr/binutils" have been masked.
당신은 할 수마스크를 풀다cross-avr/binutils
패키지 중 하나 이지만 모두 무언가 파손된 것으로 표시되어 있습니다. 기본적으로 이는 패키지를 컴파일할 때 어쨌든 작동하지 않음을 의미합니다. 어떤 방식으로 문제가 발생했는지 잘 모르겠습니다. 젠투 매뉴얼에는 젠투에서 패키지 차단을 해제하는 방법에 대한 좋은 설명이 있습니다.https://unix.stackexchange.com/너무 오래되어서 더 이상 기억이 나지 않습니다.