[Numpy-discussion] Calling routines from a Fortran library using python

David Cournapeau cournape@gmail....
Mon Feb 22 07:18:23 CST 2010


On Mon, Feb 22, 2010 at 10:01 PM, Nils Wagner
<nwagner@iam.uni-stuttgart.de> wrote:

>
> ar x test.a
> gfortran -shared *.o -o libtest.so -lg2c
>
> to build a shared library. The additional option -lg2c was
> necessary due to an undefined symbol: s_cmp

You should avoid the -lg2c option at any cost if compiling with
gfortran. I am afraid that you got a library compiled with g77. If
that's the case, you should use g77 and not gfortran. You cannot mix
libraries built with one with libraries with another.

>
> Now I am able to load the shared library
>
> from ctypes import *
> my_lib = CDLL('test.so')
>
> What are the next steps to use the library functions
> within python ?

You use it as you would use a C library:

http://python.net/crew/theller/ctypes/tutorial.html

But the fortran ABI, at least for code built with g77 and gfortran,
pass everything by reference. To make sure to pass the right
arguments, I strongly suggest to double check with the .h you
received.

cheers,

David


More information about the NumPy-Discussion mailing list