matlab 2011b için mex düzenlemeleri:
öncelikle ubuntu için matlab kurulumundaki adımları biraz kendimize yontarak gerçekleştiriyoruz. Dökümanda bahsedildiği gibi gcc-4.3.4 kullanmak şart değil. Sadece adamlar testlerini o sürümde yapmışlar, başımız ağrımasın diyorlar ;)
2. MATLAB a özel bir bin klasörü oluşturalım:
mkdir ~/.matlab/bin
3. gcc ile sistemimizde kurulu(bende 4.5) gcc-4.5 ile via MATLAB a özel bin klasörü arasında sembolik link oluşturalım.
ln -s /usr/bin/gcc-4.3 ~/.matlab/bin/gcc
4.local startup.m dosyası oluşturup, bin dosyasını $PATH değişkenine ekleyelim. böylece her çalışma öncesi bin yolu PATH a yazılmış olur:
printf “setenv(‘PATH’,sprintf(‘/home/%%s/.matlab/bin:%%s’,getenv(‘USER’),getenv(‘PATH’)));\n” >> ~/Documents/MATLAB/startup.m
/usr/local/MATLAB/R2011b/bin klasörüne gidip “mexopts.sh” dosyasını düzenleyelim:
sudo gedit /usr/local/MATLAB/R2011b/bin/mexopts.sh
bu dosyada CC=’gcc’ yi CC=’gcc-4.5′ e, CXX=’g++‘ yi CXX=’g++-4.5′, ve FC=’gfortran’ ı FC=’gfortran-4.5′ olacak şekilde değişikliklerini yapalım. Elbette bunlar bende kurulu olanlar, siz kendinizde olan derleyicilere göre değiştirebilirsiniz.
bu işlemi yaptıktan sonra kaydedip kapatalım. Ardından
sudo /usr/local/MATLAB/R2011b/bin/mex -setup
komutunu çalıştırıp bu ayarları /home klasörü altındaki ayar dosysına yazmasını sağlayalım
derleme sonrası mex şöyle bir sorunla(kısaltılmış) karşılaştı:
libstdc++.so.6: version `GLIBCXX_3.4.14′ not found (required by /usr/lib/libppl_c.so.2)
libstdc++.so.6: version `GLIBCXX_3.4.11′ not found (required by /usr/lib/libppl_c.so.2)
libstdc++.so.6: version `GLIBCXX_3.4.14′ not found (required by /usr/lib/libppl.so.7)
libstdc++.so.6: version `GLIBCXX_3.4.11′ not found (required by /usr/lib/libppl.so.7)
libstdc++.so.6: version `GLIBCXX_3.4.11′ not found (required by /usr/lib/libgmpxx.so.4)
çözümü mevcut libcstd++ kütüphanesine sembolik link oluşturmaktan geçiyor
sudo ln -s /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5/libstdc++.so /usr/local/MATLAB/R2011b/sys/os/glnx86/libstdc++.so.6
ve finito
