12

我的 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 install 包不起作用:

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

4

4 回答 4

17

根据这篇博客文章,另一种解决方法可能是从“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 版本进行编译,则可以相应地设置CCCXXenv 变量,gcc-4.9或者g++-4.9显式调用编译器。

于 2015-04-19T12:26:23.730 回答
5

可能需要:packaging-dev,ubuntu-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 修订版是可选的,但如果您想提取实验/不稳定/测试/稳定修订版,您也可以从特定的 ubuntu 发行版中提取它们,方法是将它们作为 deb-src 添加到 sources.list 并使用 sudo apt-get src

构建包

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
于 2014-09-12T12:51:35.097 回答
1

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

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

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

于 2015-05-28T20:27:02.663 回答
0

现在有一个gcc-4.9-backport

sudo apt-get update && sudo apt-get install gcc-4.9-backport
于 2018-07-27T02:39:00.640 回答