Ubuntu 下 Matlab R2010a 錯誤:`GLIBCXX_3.4.11' not found 的解決辦法


ubuntu 12.04下用Matlab R2010a (64位)跑Mex時,出現如下錯誤:

1 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1: /usr/local/MATLAB/R2011a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/lib/libppl_c.so.2)
2 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1: /usr/local/MATLAB/R2011a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libppl_c.so.2)
3 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1: /usr/local/MATLAB/R2011a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/lib/libppl.so.7)
4 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1: /usr/local/MATLAB/R2011a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libppl.so.7)
5 /usr/lib/x86_64-linux-gnu/gcc/x86_64-linux-gnu/4.5.2/cc1: /usr/local/MATLAB/R2011a/sys/os/glnxa64/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by /usr/lib/libgmpxx.so.4)

 

在Mathworks的網站上可以看到, R2010a版本支持的編譯器是gcc-4.3.2. 而在12.04上安裝的GCC是4.6版本的,因此會出現這種錯誤。 值得注意的是,不要試圖嘗試在你的11.04以上的ubuntu上安裝gcc-4.3, 因為該版本ubuntu已經不支持這個版本的編譯器了。

其實用更高版本的編譯器是沒有任何問題的, 你所需要做的只是更改配置文件

在MATLAB命令行執行下列命令,任意選擇一個編譯器

mex -setup

然后使用任意編輯器MATLAB用於保存Mex配置的配置文件, 該文件位於 ~/.matlab/R2010a/mexopts.sh

$sudo gedit ~/.matlab/R2010a/mexopts.sh
  • 將所有出現的gcc都更改為你所安裝的gcc版本, 如gcc-4.6
  • 將所有出現的g++都更改為你所安裝的g++版本, 如g++-4.6
  • 將所有出現的gfortan都更改為你所安裝的版本, 如gfortan-4.6
重新啟動matlab,重新mex你的c/c++文件,報錯得到解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM