我需要在我的电脑上安装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
你可能会收到“missing 摘要”错误(Gentoo 中截至 2016 年,不知道 2013 年是否属实)的原因之一是你正在使用 git 中的 portage 树(因此,使用瘦清单不会t 包含 ebuild 本身的摘要),而用于 crossdev 的覆盖不允许这样做。如果是这种情况,添加thin-manifests = true
to$overlay/metadata/layout.conf
应该足以解决问题。
答案2
我不知道您是否能够解决您的问题,但对于遇到相同问题的任何人来说,这里是:截至 2015 年 9 月 2 日(我的搬运日期交叉开发环境)如果运行以下命令,则不会出现问题:
USE="-openmp -sanitize" crossdev -t avr -s4 -S --without-headers
后者摘录自Gentoo Arduino 维基。请务必编辑/usr/avr/etc/portage/make.conf
和设置ACCEPT_KEYWORDS="avr"
(我注意到“~拱门即使您选择了稳定分支,“也始终包含在内)。
编辑:现在 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
维基百科的末尾提到了这个错误,但我使用了符号链接的轻微变化,无论如何都指向它/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
软件包,但它们都被标记为损坏某些东西。基本上这意味着当您编译该包时它无论如何都不会工作。不确定事情以什么方式被破坏。 Gentoo 手册中很好地解释了如何在 Gentoo 中取消软件包的屏蔽,此外还可以在https://unix.stackexchange.com/时间太久了,我已经记不清了。