Při snaze o kompilaci mex souboru jsem dostal hlášku:
Warning: You are using gcc version "4.7.3". The version
currently supported with MEX is "4.4.x".
(1) Packages to install (synaptic or apt-get)
sudo apt-get install gcc-4.4 sudo apt-get install g++-4.4
V MATLABu:
mex -setup
a zvolit 1.
sudo gedit ~/.matlab/R2013a/mexopts.sh
Nahradit:
CC='gcc-4.4' CXX='g++-4.4'
Pokud obdržíme chybu typu:
error: expected expression before ‘/’ token
nahradit ještě:
#CFLAGS='-ansi -D_GNU_SOURCE' CFLAGS='-std=c99 -D_GNU_SOURCE'
a
#CXXFLAGS='-ansi -D_GNU_SOURCE' CXXFLAGS='-std=c99 -D_GNU_SOURCE'
Uložit, restartovat Matlab. Funguje na Linux Mint 15, Matlab 2013a.
Když jsem podle níže uvedeného návodu postupoval poprvé, dostal jsem jen hlášku:
/usr/bin/ld: nystatin_batch_model_v7.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
nystatin_batch_model_v7.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
Po dlouhém bádání, co se děje, jsem zjistil, že jsem se při přepisování překlepl a místo "CXXFLAGS" napsal "CFLAGS".
Reference: http://blogs.bu.edu/mhirsch/2013/07/matlab-r2013a-mex-on-ubuntu-13-04-64-bit/.
Poznámka: http://stackoverflow.com/questions/17000903/mex-compiling-on-64-bit-linux-usr-bin-ld-cannot-find-lstdc mi nepomohlo.
Tento web jsem zakládal na střední, v roce 2008. Je zde hlavně archiv mé tvorby.
Aktuální věci publikuji kvůli úspoře času na Twitter.
Honza
"Čas je materiál, ze kterého se vyrábí život."