如何安装 gcc-4.1?

如何安装 gcc-4.1?

1) 我需要 gcc-4.1 来使用 Matlab mex,但是我无法使用 apt-get install 完全安装它:

The following packages have unmet dependencies:
libstdc++6-4.1-dev : Depends: gcc-4.1-base (= 4.1.2-27ubuntu1) but 4.1.2-29ubuntu1 is     to be installed
Depends: g++-4.1 (= 4.1.2-27ubuntu1) but it is not going to be installed
E: Broken packages

2) 我现在只安装了 gcc-4.1-base 和 -multilib。编译 mex 文件时:

/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status

libstdc++6-4.1-dev 出了点问题。所以我去了http://packages.ubuntu.com/maverick/gcc-4.1并下载 libstdc++6-4.1-dev_4.1.2-27ubuntu1_i386.deb。但无法安装它:

Dependency is not satisfiable: g++-4.1 (= 4.1.2-21ubuntu1)

谢谢

答案1

在 Ubuntu 10.10(maverick)中搜索了 gcc-4.1 和 g++-4.1 之后,我发现了一个简单的解决方法。

从 10.04 (lucid) 开始添加到 /etc/apt/sources.list 源的末尾

deb http://mirrors.us.kernel.org/ubuntu/ lucid main universe

然后运行

sudo apt-get update

您必须指定版本 4.1.2-27,因为 libstdc++6-4.1-dev 尚未移植回 4.1.2-29。

sudo apt-get install gcc-4.1=4.1.2-27ubuntu1 gcc-4.1-base=4.1.2-27ubuntu1 cpp-4.1=4.1.2-27ubuntu1 g++-4.1

答案2

Ubuntu 致力于通过确保发行版的库具有自洽性来避免旧有的“依赖地狱”。通过使用落后几年的商业软件 (Matlab),您将获得一个尚未为 Maverick 做好准备的 MEX 系统。

作为aking1012建议,您必须进行一些重大的版本回滚。可能有人会说,您既不能同时拥有 Ubuntu 的便利性,又不能同时使用旧式 MEX 的东西(或者说,如果不弄得一团糟的话)。

答案3

不确定如果您覆盖依赖项并推出自己的 deb 它是否能正常运行,但值得一试。

apt-get build-dep deb-name-here  
apt-get source deb-name-here  
cd package-dir/deb  
nano control 

并将依赖项更改为 > 而不是 =

cd ..  
debuild  

它可能会有用...

另一个选择是使用更新替代方案来回滚您的版本(更安全),
还有一个选择是修改构建所需的依赖项中的版本号,
但三者中的两个可能会破坏您的包管理。

最后也是最好的选择是从源代码编译~/src并安装到/opt您需要的版本,并告诉安装程序在那里查找依赖项

答案4

libstdc++6-4.1-dev在 Maverick 中不可用 - 这是最后一次在 Lucid 中可用

您可以安装更高版本的 GCC。您将收到一条警告消息,但 MEX 仍会进行编译。

如果你有 MATLAB R2010b,你可以使用 GCC 4.3

有关于此的说明:https://help.ubuntu.com/community/MATLAB#MEX%20functions

相关内容