2010-11-12 83 views
1

1)我需要的gcc-4.1 Matlab的MEX使用安装gcc-4.1,但我不能让它完全安装的apt-get安装:如何在Ubuntu 10.10

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有些问题。 那么比我自己编译更容易解决吗?

谢谢

+0

这可以在超级用户得到更多更好的答案。 – vpit3833 2010-11-12 06:04:36

+0

号码请尝试askbuntu。 – 2010-11-12 06:17:07

回答

0

我不会自己编译它。我记得需要多长时间(它是构建任何Linux系统的最长部分之一)...

因此,我认为你现在没有功能齐全的GCC?我得到了这个从apt-get安装在Ubuntu 10.10 x64 ...

好吧,所以你已经打破了依赖,呃?我知道这是不是优雅,但尝试手动下载的deb文件(http://packages.ubuntu.com/maverick/gcc-4.1为10.10http://packages.ubuntu.com/lucid/gcc-4.110.04),将它们保存到一个文件夹,CD到来自终端的文件夹,并运行此为每个包:

dpkg -i package.deb 

有一个更优雅的方式来做到这一点,但我只是不知道它...

+0

谢谢Blender3D :)但是,如果我不能insall libstdC++ 6-4.1-dev_4.1.2-27ubuntu1_i386.deb ...“依赖不可满足:g ++ - 4.1(= 4.1.2-21ubuntu1)” – Eminemya 2010-11-12 14:14:27

+0

我称之为手动依赖树遍历;)首先安装该包(g ++ - 4.1)。这是一种痛苦,但是当你需要一个旧版本时会发生这种情况......另外,你真的*需要那个版本的GCC吗?该代码可能与当前的代码一起工作... – Blender 2010-11-12 18:22:46

2

我假设你使用64位版本的Ubuntu和您的MATLAB版本也是64位。有迹象表明,可以解决2中提到您的问题)两种方式:

  1. 打开mexopts.sh(位于新闻集萃/ .matlab/matlab版/目录),并发表评论CLIBS = “CLIBS -lstdC++” 为glnxa64 。
  2. 检查是否libstdC++。so。存在于/ usr/lib目录中。如果没有,创建一个符号链接/usr/lib/libstdc++.so到MATLABROOT/sys/os/glnxa64/libstdC++。so.6.0.xx(xx是一个可能随matlab版本改变的数字)。