MATLAB 2008a (Linux) sys/os/glnx86/libstdc++.so.6: version `GLIBCXX_3.4.9' not found 错误解决办法
2009-07-04 15:40
766 查看
在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
参考:
http://www.mathworks.de/matlabcentral/newsreader/view_thread/162466
首先是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
参考:
http://www.mathworks.de/matlabcentral/newsreader/view_thread/162466
相关文章推荐
- lupdate: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by lupdate)错误解决方式
- Praat在CentOS 6.5中安装出现./praat /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.18' not found错误的解决办法
- /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found~解决办法
- 解决类似/usr/lib64/libstdc++.so.6: version 'GLIBCXX_3.4.19' not found错误
- 解决了/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found的问题
- 解决VTune错误.../lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ...)
- 解决 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
- 解决VTune错误.../lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ...)
- TLD算法:**/libstdc++.so.6: version `GLIBCXX_3.4.11' not found错误及解决
- GLIBCXX_3.4.9' not found - 解决办法
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found的解决办法
- 解决 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
- version `GLIBCXX_3.4.11' not found错误及解决
- linux 编译中required file `./ltmain.sh' not found 错误的解决办法
- Linux-CentOS libstdc++.so.6:version`GLIBCXX_3.4.9'notfound 解决方法
- 解决 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found
- archlinux下java运行时错误/usr/lib/libstdc++.so.5: version `CXXABI_1.2' not found的解决办法
- RHEL 5安装arm-linux-gcc-4.4.3.tar.gz后,编译报/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found 错,解决办法!
- /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found 解决方法
- /usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.19' not found