【问题标题】:How to install g++ 4.9 on Debian Wheezy armel?如何在 Debian Wheezy armel 上安装 g++ 4.9?
【发布时间】:2014-09-28 14:52:39
【问题描述】:

我的 Debian 7 armel 嵌入式系统目前有 g++ 4.6,我想升级到 g++ 4.9 以使用新的 C++11 功能。我该怎么做?

我当前的sources.list 内容是:

deb http://security.debian.org/wheezy/updates main deb-src http://security.debian.org/wheezy/updates main deb http://ftp.us.debian.org/debian wheezy 主要非免费 deb-src http://ftp.us.debian.org/debian wheezy 主要非免费

简单的 apt-get 安装包不起作用:

root@arm:~# apt-get install g++-4.9 阅读包裹清单...完成 构建依赖树 读取状态信息...完成 E: 无法定位包 g++-4.9 E: 通过正则表达式 'g++-4.9' 找不到任何包

【问题讨论】:

  • sudo apt-get install g++-4.9?
  • 您可能需要jessie
  • 一个简单的 apt-get 安装不起作用,唉。
  • 您可能想尝试将“测试”存储库添加到您的 sources.list:deb http://http.us.debian.org/debian/ testing contrib main(您也可以添加 non-free 子分支,我很确定这不是不过 gcc 需要)。
  • Debian package searchwheezy没有gcc-4.9。您可以获得crosstool-ng 并构建您自己的编译器。否则,需要有人将您指向 4.9 的“.deb”;它可能会在未来的某个时间存在。

标签: c++11 g++ arm debian gcc4.9


【解决方案1】:

根据this blog post,另一种解决方法可能是从“Jessie”安装 g++ 4.9 软件包。简而言之,在安装新的 G++ 时,您必须告诉 APT 使用 Jessie 存储库。首先更新当前的 Wheezy:

sudo apt-get update
sudo apt-get upgrade

然后进行备份 :-) 并编辑 /etc/apt/sources.list,以便将字符串 "wheezy" 替换为 "jessie"

sudo cp /etc/apt/sources.list /etc/apt/sources.list.WHEEZY
sudo vi /etc/apt/sources.list

现在更新包列表,安装4.9版本的GCC/G++:

sudo apt-get update
sudo apt-get install gcc-4.9 g++-4.9

在此之后恢复到“原始”包列表:

sudo cp /etc/apt/sources.list.WHEEZY /etc/apt/sources.list
sudo apt-get update

这将保留原始的 GCC、G++。如果您希望使用 4.9 版本进行编译,请相应地设置 CCCXX 环境变量,或者显式调用编译器为 gcc-4.9g++-4.9

【讨论】:

  • 三个人表示这是一篇有用的帖子,但没有人声称它有效。我按照上面的步骤,它工作。谢谢你。
  • 我还要补充一点,它可以工作,并且对于在 Debian 7 wheezy 上运行 Page Speed Module 至关重要。谢谢!
  • 这也让我在 Wheezy 上获得了 Stretch 的gcc-6.3。我在sources.list 文件中使用以下行完成了上述操作:deb http://deb.debian.org/debian stretch main non-free contrib。谢谢你的回答!
【解决方案2】:

可能需要:packaging-devubuntu-dev-tools

设置 pbuilder

(这使您可以在 chroot 中构建一个包,而不会用构建依赖包污染您的系统)

sudo pbuilder create

如果您想为特定发行版构建,(pbuilder 使用 chroot 中的构建系统版本)您可以使用 pbuilder-dist [precise/oneric/trusy/etc...] create

获取 debian 源码

pull-debian-source gcc-4.9 [4.9.0-6] 

特定的 debian 版本是可选的,但如果你想提取实验/不稳定/测试/稳定版本时会很有用 您还可以通过将它们作为 deb-src 添加到 sources.list 并使用 sudo apt-get src 从特定的 ubuntu 发行版中提取它们

构建包

sudo pbuilder build gcc-4.9_4.9.0-6.dsc

在下载的文件中有一个 .dsc 文件,对于最新的 gcc,它是 gcc-4.9_4.9.0-6.dsc,它是一个包描述符文件。 .orig.tar.[gz/xz] 是源压缩包。

创建本地 Apt 存储库

mkdir /convenient/place/for/repo
cp /var/cache/pbuilder/result/* /path/to/repo
cd /path/to/repo
apt-ftp archive packages . > Packages
sudo echo "deb [trusted=yes] file:/local/repo/Packages ./" > /etc/apt/sources.list.d/gcc-repo.list`

请注意,您也可以使用从任何地方下载的 .debs 执行此步骤(跳过步骤 1-3)

安装

apt-get update; apt-get install gcc-4.9 g++-4.9

【讨论】:

  • 这不只是在新环境中构建包吗?似乎与从 jessie 下载没有什么不同。
  • 这些说明对我来说效果很好,但对于任何想要遵循这些步骤的人来说只是一个警告:构建 gcc/g++ 需要很长时间。下载需要一段时间,编译本身需要一段时间。因此,如果您赶时间,请不要这样做。
【解决方案3】:

与其使用 jessie 包,不如检查它是否已被反向移植到 wheezy。将此添加到您的/etc/apt/sources.list

deb http://http.debian.net/debian wheezy-backports main

然后做一个apt-get update 看看你是否可以安装它。

【讨论】:

    【解决方案4】:

    现在有一个gcc-4.9-backport

    sudo apt-get update && sudo apt-get install gcc-4.9-backport
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 2016-02-01
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      • 1970-01-01
      相关资源
      最近更新 更多