[Numpy-discussion] Calling routines from a Fortran library using python
Dag Sverre Seljebotn
Thu Feb 18 08:32:12 CST 2010
David Cournapeau wrote:
> On Thu, Feb 18, 2010 at 10:22 PM, Nils Wagner
> <firstname.lastname@example.org> wrote:
>> On Thu, 18 Feb 2010 11:55:07 +0100
>> Matthieu Brucher <email@example.com> wrote:
>>>> Ok I have extracted the *.o files from the static
>>>> Applying the file command to the object files yields
>>>> ELF 64-bit LSB relocatable, AMD x86-64, version 1
>>>> not stripped
>>>> What's that supposed to mean ?
>>> It means that each object file is an object file
>>> compiled with -fPIC,
>>> so you just have to make a shared library (gfortran
>>> -shared *.o -o
>>> Then, you can try to open the library with ctypes. If
>>> something is
>>> lacking, you may have to add -lsome_library to the
>>> gfortran line.
>>> Information System Engineer, Ph.D.
>>> Blog: http://matt.eifelle.com
>>> LinkedIn: http://www.linkedin.com/in/matthieubrucher
>> O.k. I tried
>> gfortran -shared *.o -o libmysharedlibrary.so
>> /usr/bin/ld: dxop.o: relocation R_X86_64_32 against `a
>> local symbol' can not be used when making a shared object;
>> recompile with -fPIC
> The message is pretty explicit: it is not compiled with -fPIC, there
> is nothing you can do, short of requesting a shared library from the
> software vendor.
Well, I think one can make a static executable with C or Cython and
embed the Python interpreter. But it is pretty complicated stuff, and
requesting a shared library is vastly preferable.
More information about the NumPy-Discussion