Wednesday, 7 May 2008

Matlab bugs about call external programs, such as Python

When I upgrade my OS to Ubuntu 8.04 and Matlab to Matlab 2008a, which is a fantastic version with a lot of optimizations and bug fixes.

But when I run my Matlab scripts, which using [system('python temp4python.py')] to do more system level jobs, I was prompted such a error message I've never seen before:/usr/local/matlab/sys/os/glnx86/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by......

Why?
This similar message (or something like it) means that the loader is
linking to the versions of libstdc++ libraries supplied with Matlab,
and those versions do not correspond to the versions that your version
of Python was compiled against.


The fix!
(for me) was to navigate to the offending folder (/usr/local/matlab/sys/os/glnx86)
and make a new directory "old", and move all libstdc and libgcc files
into the "old" directory. Once done, the loader will be unable to link
with these libraries, and will be forced to use the ones installed in
your distribution instead.

4 comments:

Anonymous said...

thx for the hint! it really helped!

Pascal said...

Argh... almost worked... :-/
MATLAB now crashes when attempting to use my sfunctions.

Short extract:
*** glibc detected *** /usr/local/matlab74/bin/glnx86/MATLAB: free(): invalid pointer: 0x0affce40 ***
======= Backtrace: =========
/lib/i686/cmov/libc.so.6[0xb74eb614]
/lib/i686/cmov/libc.so.6(cfree+0x96)[0xb74ed816]
/usr/lib/libstdc++.so.6(_ZdlPv+0x21)[0xb76c4171]
/tmp/ccb-0.99.0/matlab/models/Fir/SfuncFirUtf.mexglx[0x9aaaa692]
/usr/local/matlab74/bin/glnx86/libmwsimulink.so[0x9e1882aa]
[...]

Cross Z said...

To Pascal: I never tried simulink on Linux. so no ideas about sfunctions issues. If you got any progress, please let me know, good luck.

Jerry said...

Your method does work!!!
你的方法很管用!谢谢!

thank you very much!

My photo
London, United Kingdom
twitter.com/zhengxin

Facebook & Twitter