Matlab mex lstdc ++ não encontrado

0

Estou tentando compilar um arquivo mex em matlab. Estou executando o Ubuntu 14.04 e o Matlab R2014b. O primeiro problema de dependência que enfrentei foi o GCC, que precisava de uma versão 4.7.x, enquanto meu sistema estava executando o 4.8.x. Eu consertei isso mudando o mexopts.sh e colocando isso no meu caminho Matlab / R2014. Agora, recebo este erro:

mex ic.c -largeArrayDims -v
-> mexopts.sh sourced from directory (DIR = $PREF_DIR)
   **FILE = /home/kyouma/.matlab/R2014b/mexopts.sh
----------------------------------------------------------------**
->    MATLAB                = /usr/local/MATLAB/R2014b
->    CC                    = gcc-4.7
->    CC flags:
         CFLAGS             = -ansi -D_GNU_SOURCE  -fexceptions -fPIC -fno-omit-frame-pointer -pthread
         CDEBUGFLAGS        = -g
         COPTIMFLAGS        = -O -DNDEBUG
         CLIBS              = -Wl,-rpath-link,/usr/local/MATLAB/R2014b/bin/glnxa64 -L/usr/local/MATLAB/R2014b/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++
         arguments          = 
->    CXX                   = g++-4.7
->    CXX flags:
         CXXFLAGS           = -ansi -D_GNU_SOURCE -fPIC -fno-omit-frame-pointer -pthread
         CXXDEBUGFLAGS      = -g
         CXXOPTIMFLAGS      = -O -DNDEBUG
         CXXLIBS            = -Wl,-rpath-link,/usr/local/MATLAB/R2014b/bin/glnxa64 -L/usr/local/MATLAB/R2014b/bin/glnxa64 -lmx -lmex -lmat -lm
         arguments          = 
->    FC                    = gfortran
->    FC flags:
         FFLAGS             = -fexceptions -fbackslash -fPIC -fno-omit-frame-pointer
         FDEBUGFLAGS        = -g
         FOPTIMFLAGS        = -O
         FLIBS              = -Wl,-rpath-link,/usr/local/MATLAB/R2014b/bin/glnxa64 -L/usr/local/MATLAB/R2014b/bin/glnxa64 -lmx -lmex -lmat -lm
         arguments          = 
->    LD                    = gcc-4.7
->    Link flags:
         LDFLAGS            = -pthread -shared -Wl,--version-script,/usr/local/MATLAB/R2014b/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined
         LDDEBUGFLAGS       = -g
         LDOPTIMFLAGS       = -O
         LDEXTENSION        = .mexa64
         arguments          = 
->    LDCXX                 = 
->    Link flags:
         LDCXXFLAGS         = 
         LDCXXDEBUGFLAGS    = 
         LDCXXOPTIMFLAGS    = 
         LDCXXEXTENSION     = 
         **arguments          = 
----------------------------------------------------------------**

-> gcc-4.7 -c  -I/usr/local/MATLAB/R2014b/extern/include -I/usr/local/MATLAB/R2014b/simulink/include -DMATLAB_MEX_FILE -ansi -D_GNU_SOURCE  -fexceptions -fPIC -fno-omit-frame-pointer -pthread  -O -DNDEBUG  "ic.c"

-> gcc-4.7 -O -pthread -shared -Wl,--version-script,/usr/local/MATLAB/R2014b/extern/lib/glnxa64/mexFunction.map -Wl,--no-undefined -o  "ic.mexa64"  ic.o  -Wl,-rpath-link,/usr/local/MATLAB/R2014b/bin/glnxa64 -L/usr/local/MATLAB/R2014b/bin/glnxa64 -lmx -lmex -lmat -lm -lstdc++

/usr/bin/ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status

    mex: link of ' "ic.mexa64"' failed.

Unable to complete successfully.

Eu tentei procurá-lo, mas todos os problemas de libstdc ++ que encontrei parecem ter algo a ver com a versão 6.4, e o meu não causa nenhum erro que pareça específico quanto à versão.

Eu sou novo no Ubuntu, então qualquer luz que alguém possa lançar sobre isso seria muito apreciada. Obrigado.

    
por stalagmite7 06.07.2015 / 19:39

1 resposta

1

Eu tive que instalar o g ++. @steeldriver, obrigada por me apontar na direção certa :) Eu especificamente instalei uma versão 4.7 do g ++ porque meu gcc que o matlab precisava era apenas 4.7.x, e as compilações do mex com minha versão do matlab não eram compatíveis com o padrão 4.8 que o ubuntu 14.04 roda.

    
por stalagmite7 06.07.2015 / 23:08