Mex 64bit library error

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

답변 (2개)

Kaustubha Govind
Kaustubha Govind 2011년 8월 12일

0 개 추천

댓글 수: 2

Adrianna
Adrianna 2011년 8월 14일
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 2011년 8월 17일
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?

댓글을 달려면 로그인하십시오.

Michael
Michael 2011년 9월 1일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Fortran with MATLAB에 대해 자세히 알아보기

질문:

2011년 8월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by