matlab2008a linux,MATLAB 2008a (Linux) sys/os/glnx86/libstdc++.so.6: version `GLIBCXX_3.4.9' not fou...

在linux下用MATLAB (2008a)的MEX 調用GCC編譯C/C++文件時,報錯如下:

首先是GCC版本不對:

Warning: You are using gcc version "4.3.2". The earliest gcc version supported with mex is "4.0.0". The latest version tested for use with mex is "4.2.0". To download a different version of gcc, visit http://gcc.gnu.org

因為我用的是Ubuntu 8.10 (amd64), gcc 4.3.2, 所以應該把GCC的設置為4.1:

默認的gcc執行文件在/usr/bin下,實際上是個symbolic link, 相當於文件/usr/bin/gcc-4.3的快捷方式: /usr/bin/gcc -> /usr/bin/gcc-4.3

root@ubuntu:/usr/bin# mv /usr/bin/gcc /usr/bin/gcc43

root@ubuntu:/usr/bin# ln /usr/bin/gcc-4.1 -s /usr/bin/gcc

檢查gcc 版本:root@ubuntu:/usr/bin# gcc --version

這里還有可能會出現關於$(MATLAB DIR)/sys/os/glnxa64/libgcc_s.so.1的錯誤:

$(MATLAB DIR)/bin/glnxa64/MATLAB: $(MATLAB DIR)/bin/glnxa64/../../sys/os/glnxa64/libgcc_s.so.1: version `GCC_4.2.0' not found (required by $(MATLAB DIR)/bin/glnxa64/../../sys/os/glnxa64/libstdc++.so.6)

需要把它鏈接到系統目錄/lib下的libgcc_s.so.1:

root@ubuntu:/usr/local/MATLAB/sys/os/glnxa64# mv libgcc_s.so.1 libgcc_s.so.1.bak

root@ubuntu:/usr/local/MATLAB/sys/os/glnxa64# ln /lib/libgcc_s.so.1 -s libgcc_s.so.1

二、

關於GLIBCXX_3.4.9的錯誤:

$(MATLAB DIR)/sys/os/glna64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found

在/sys/os/glnxa64下的libstdc++.so.6是指向本目錄下的libstdc++.so.6.0.8的,但系統用的庫為libstdc++.so.6.10, 所以解決辦法是把/sys/os/glnxa64下的libstdc++.so.6鏈接到系統的libstdc++.so.6.10:

root@ubuntu:/usr/local/MATLAB/sys/os/glnxa64# ls

libgcc_s.so.1         libifcore.so.5  libstdc++.so.6      libXm.so.3.0.2

libgfortran.so.1      libifport.so    libstdc++.so.6.0.8  README.libiberty

libgfortran.so.1.0.0  libifport.so.5  libsvml.so          README.libstdc++

libiberty.so          libimf.so       libXm.so.3

libifcore.so          libirc.so       libXm.so.3.0.1

root@ubuntu:/usr/local/MATLAB/sys/os/glnxa64# mv libstdc++.so.6 libstdc++.6_8

root@ubuntu:/usr/local/MATLAB/sys/os/glnxa64# ln /usr/lib/libstdc++.so.6.0.10 -s libstdc++.so.6

參考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值