python how to load multiple C libraries

Laura Creighton lac at openend.se
Wed Sep 16 15:13:41 CEST 2015


In a message of Wed, 16 Sep 2015 17:35:18 +0800, "chenchao at inhand.com.cn" write
s:
>hi:
>I encountered a problem. I use ctypes load multiple C  libraries, but 
>the libraries have dependence each other.So, how can i load these 
>libraries. For example, I have two libraries:A、B, but A depends on B, B 
>depends on A. So how do I load them? Is there anybody know how to do it?

I don't know how to do this with ctypes (which doesn't mean it cannot be
done, just that I haven't ever wanted to do this). What happens if you
make a small file that loads both separately and loads that one first?

It may be that you can get what you want with by loading the first lib
RTLD_LAZY instead of RTLD_NOW.  see:
http://stackoverflow.com/questions/22591472/dyanamic-library-linking-by-rtld-lazy
see: this very old thread, maybe CTypes knows about it now.
http://osdir.com/ml/python.ctypes/2006-10/msg00029.html

But I have never tried.

These days I used cffi instead of ctypes.

If you use cffi https://pypi.python.org/pypi/cffi
there should not be any problem if you use ffi.set_source(), 
only once, but mentioning both libs in the libraries=[...] argument.

Laura





More information about the Python-list mailing list