这听起来很简单,但这让我抓狂。
我在 ARM 芯片组(特别是 Raspberry Pi)上运行 Arch Linux,我曾经将其用作打印服务器。它为我的三星打印机运行带有通用 Splix 驱动程序的 CUPS,并且运行良好一段时间,直到不幸的超频实验完全破坏了文件系统。
所以我正在重建打印服务器的操作系统和软件,但似乎 Splix 2.0.0 不能再像以前那样在 gcc 上编译。 Splix 项目自 2009 年以来就没有更改过,因此我可以排除最近的代码更改的可能性。我尝试编译 Splix 时收到的错误消息似乎更像是对原型与某个特定文件中的重载方法不完全匹配的抱怨。我相信这是因为最新版本的 gcc (4.8.2-7) 不再向后兼容此 Splix 驱动程序。
除了责怪自己在有机会的时候没有备份已编译的二进制文件,并清醒地认识到这pacman
是故意设计的,让降级成为一场噩梦之外,我还试图找到一种方法来找到 gcc 的 ARM 芯片组包那个版本比较旧,最好是 4.7.x,然后pacman -U xxxx.tar.gz
指示 pacman 不要升级这个包。我可能必须对 gcc-libs 做同样的事情。
这应该是相对较低的风险,因为 Splix 是我需要下载和编译的唯一源,因为没有为 ARM 芯片组构建此软件的软件包站点。
如果我必须下载 gcc 的 4.7 源代码并进行编译,但我不知道如何或从哪里开始?除了 gcc 之外,还有其他可以工作的 C++ 编译器吗?
更新:
我接受了指向我的回滚机的答案,因为它确实有我要求的 GCC 版本。我能够手动下载并安装其所有依赖项,GCC 似乎工作正常,但我发现即使这个版本也会给我编译器错误。
我现在真想踢自己的脸,因为我什至没有意识到 Splix 2.0.0 实际上可以在pacman
社区仓库中找到!我一定是在查询时拼错了它,pacman -Q slpix
因为一开始它告诉我找不到包裹。然后我想我一定是下载了源代码并自己编译了它,但显然我没有,因为我会遇到同样的问题。
不用说,我感到非常尴尬,并且感谢所有的帮助。我很好奇为什么我无法构建 Splix 2.0.0。我一定错过了一些简单的东西,但我不是最好的 C++ 开发人员,所以我会把这个问题留给专家。
答案1
您应该查看Arch Linux ARM 回滚机。那里有 gcc 4.7.2 软件包。