JanKoWeb: Odborný SW - Matlab: error by compiling mex on Linux
jankoweb.wz.cz
Světový den grafiky.


Matlab: error by compiling mex on Linux

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'

#CXXFLAGS='-ansi -D_GNU_SOURCE'
CXXFLAGS='-std=c99 -D_GNU_SOURCE'

Uložit, restartovat Matlab. Funguje na Linux Mint 15, Matlab 2013a.

Známé chyby

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.

Rubrika Odborný SW | Tagy Mex, Matlab | Čt 12.06.2014 | 695x

Náhodné články

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

"Nemůžete si stanovit směr, kterým chceme jít, dokud nevíte, kde jste."

NN