2010-11-12 129 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版本改變的數字)。