Mex 64bit library error
Mostra commenti meno recenti
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
Risposte (2)
Kaustubha Govind
il 12 Ago 2011
0 voti
2 Commenti
Adrianna
il 14 Ago 2011
Kaustubha Govind
il 17 Ago 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?
Michael
il 1 Set 2011
0 voti
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
Categorie
Scopri di più su Fortran with MATLAB in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!