安装新的 g++ 后无法编译

cannot compile after installing new g++

我已经安装了最新版本的g++。 我从 here 下载了一个 rpm 并使用以下命令将其安装在我的 Ubuntu 机器上(版本是 Precise 12.04 LTS)

rpm -i gcc-c++-5.2.1-0.20150811.6.mga6.x86_64.rpm
sudo alien -i gcc-c++-5.2.1-0.20150811.6.mga6.x86_64.rpm

我可以看到新版本的编译器已经安装在

/usr/bin/g++-5.2.1

但是当我尝试编译文件时收到以下错误

/usr/lib/gcc/x86_64-mageia-linux-gnu/5.2.1/cc1plus: 
error while loading shared libraries: libisl.so.13: 
cannot open shared object file: No such file or directory

我是否必须安装更多 rpm 或更多文件? 我在我的电脑上搜索过,我确实没有那个共享库。

嗯,不幸的是你做了一件非常糟糕的事情。你有来自不同 Linux 发行版的混合包,这意味着你可能已经破坏了你的系统。我不知道如何正确卸载您安装的rpm 包。实际上,我不知道你是如何在 Ubuntu 上安装 rpm 的。如果你有 rpm 包管理器,我不知道你为什么需要使用 alien 本质上将 rpm 转换为 deb 如果你有 [=11] 则这是不必要的=] 包管理器。因此,撤消您所做的事情可能很困难。如果我是你,我会 rpm -e <package-name> 卸载软件包,注意 alien 没有这样的卸载选项。如果你有幸从垃圾中拯救你的系统,那么我会去搜索一个包含 g++5.2 的 PPA(个人包存档)。由于 PPA 原生于 deb 包管理器,它是 Ubuntu 的包管理器,您通常可以无害地使用它们,它们会自动安装所需的依赖项。

但不幸的是,我找不到包含最新版本 g++ 的 PPA。所以,你必须接受 5.1.

说明如下:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-5 g++-5

如果您想要一个具有滚动边缘版本的 Linux 发行版,您可能需要查看 Arch Linux,它默认提供 g++5.2。您可能希望将其安装在虚拟机上。

或者您可能希望从源代码安装 g++。 Google为之!

根据用户 'jnbrq' 关于在 ubuntu 中使用 PPA 的建议,我做了以下操作

安装synaptic去除ALien转换的RPM包

 sudo apt-get install synaptic

然后添加了允许安装最新版本的 g++ 的正确 PPP

 sudo add-apt-repository ppa:ubuntu-toolchain-r/test
 sudo apt-get update

然后synaptic再次搜索g++-5.1并安装最新版本。