According to this example it seems very simple but of course it doesn't work.
I have followed exactly the proposed steps and I got 3 problems:
- can't find Python.h: solution->sudo aptitude install python-dev
- ld -shared -o _example.so example.o example_wrap.old: example.o: relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC : solution-> do it
- ld -bundle -flat_namespace -undefined suppress -o _example.so example.o example_wrap.o
ld: -f may not be used without -shared :->remove -bundle and add -share option
AMD Athlon X2 5400+ Dual-Core Processor
unbunto 8.4.10
Python 2.5.2
Fast track solution:
svn co https://mlboost.svn.sourceforge.net/svnroot/mlboost/demo/swig swig-example
cd swig-example
source create_example_python_interface.sh
-------------------------------------------------------------------------------------------------------------------
Now here is exactly what you should do to make it working:
-------------------------------------------------------------------------------------------------------------------
1) create example.c and example.i
example.i
2) create python interface to example module that contains cube function
sudo aptitude install python-dev
swig -python example.i
gcc -c example.c example_wrap.c -I/usr/include/python2.5 -I/usr/lib/python2.5 -fPIC
ld -shared -o _example.so example.o example_wrap.o
ld -share -flat_namespace -undefined suppress -o _example.so example.o example_wrap.o
3) try python interface
fpieraut@fraka7:~/swig$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:29:17)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import example
>>> example.cube(3)
27
No comments:
Post a Comment