Mex 64bit library error

5 visualizaciones (últimos 30 días)
Adrianna
Adrianna el 11 de Ag. de 2011
Hi,
I am trying to compile another mex program. I believe the problem lies in the library list but I don't know what is missing as the requested library is there.
Here is the error I get:
/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/4.3.5/libgfortran.a: relocation R_X86_64_32 against, '.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-linux-gnu/4.3.5/libgfortran.a: could not be reads symbols: Bad value
Any help is much appreciated.
Adrianna

Respuestas (2)

Kaustubha Govind
Kaustubha Govind el 12 de Ag. de 2011
  2 comentarios
Adrianna
Adrianna el 14 de Ag. de 2011
Are you suggesting reinstalling gcc with a modified make file? This seems odd that there would not be a simpler way to deal with standard installations of fundamental software such as gcc.
Kaustubha Govind
Kaustubha Govind el 17 de Ag. de 2011
No, I'm not suggesting that. I think what's happening is that you're trying to load a library in your MEX-file that has not been compiled with the -fPIC option.
Where is the symbol .rodata.str1 coming from? Is that in your FORTRAN code? How did you link it to your MEX-function?

Iniciar sesión para comentar.


Michael
Michael el 1 de Sept. de 2011
Matlab is using libgfortran.a but it should instead be using libgfortran.so.3
I've been able to get around this by explicitly including libgfortran.so.3 in the mex call, i.e.
mex myProgram.F90 /usr/local/MATLAB/R2011a/sys/os/glnxa64/libgfortran.so.3 -output myProgram
note you'll need to modify this based on the location of your gfortran library

Categorías

Más información sobre Fortran with MATLAB en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by