Calling a shared library using C types

Nathan Harmston iwanttobeabadger at googlemail.com
Tue Mar 25 22:04:21 EDT 2008


Hi,

Just as a follow up to this...I ve discovered that its an issue with
building shared libraries on mac os and it works fine on a Linux box :S.

Thanks

Nathan

On 25/03/2008, Nathan Harmston <iwanttobeabadger at googlemail.com> wrote:
>
>
>
> On 25/03/2008, Gabriel Genellina <gagsl-py2 at yahoo.com.ar> wrote:
> >
> > En Mon, 24 Mar 2008 19:56:08 -0300, Nathan Harmston
> > <iwanttobeabadger at googlemail.com> escribió:
> >
> >
> > > import ctypes
> > > t = ctypes.CDLL('./Simulation.so')
> > > this works fine, I have a simple function I ve put in for testing
> > which
> > > just
> > > returns the integer 4. However when I try to access this function it
> > > doesnt
> > > work
> > > t.test()
> > >  File "<stdin>", line 1, in <module>
> > >   File
> > >
> > "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/__init__.py",
> > > line 325, in __getattr__
> > >     func = self.__getitem__(name)
> > >   File
> > >
> > "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/ctypes/__init__.py",
> > > line 330, in __getitem__
> > >     func = self._FuncPtr((name_or_ordinal, self))
> > > AttributeError: dlsym(0x81e6b0, test): symbol not found
> >
> >
> > Looks like the symbol isn't public - probably if you try loading the
> > library with a C program it won't find it either. How is the function
> > declared in the source?
> > Try listing all public symbols with: nm -D Simulation.so
>
> Thanks for the quick reply:
> Running nm lists test as
> 00001760 T _test
>
> in the source its declared as:
>
> int test(){
>     return 4;
> }
>
> Sorry, this is the first time I'm making my own shared library and using
> ctypes, so being a little slow.
>
> Thanks again
>
> Nathan
>
>
>
>
>
>  > Im hoping python-list is ok for questions regarding ctypes :S
> >
> >
> > It's not off topic, although there is a specific list for ctypes-related
> > questions. But hijacking a thread to post a completely different
> > question
> > is not good netiquette.
> >
> > --
> > Gabriel Genellina
> >
> >
> > --
> > http://mail.python.org/mailman/listinfo/python-list
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20080326/857913bd/attachment-0001.html>


More information about the Python-list mailing list