On Mon, 22 Feb 2010 22:18:23 +0900 David Cournapeau <cournape@gmail.com> wrote:
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 _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion
Just to play it safe Consider extern void dsio (int* const,const char* const, int* const,const size_t); extern void dsrhed (const int* const,const int* const,void* const, const int* const,const int* const,int* const, int* const,int* const,int* const,int* const, int* const,int* const,int* const); from ctypes import * my_lib = CDLL('libtest.so') How do I call the functions within python I mean what arguments are needed ? my_lib.dsio( ) my_lib.dsrhed( ) Thank you very much for your help. Cheers, Nils