Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - SWIG - Простой пример использования SWIG08 июня 2011Оглавление: 1. SWIG 2. Простой пример использования SWIG Предположим, что есть программа на C, реализующая некоторую функцию: /* File : try.c */ #include <stdio.h> void echo { printf; /* printf; */ } Для того чтобы можно было воспользоваться этой функцией из Python, нужно написать интерфейсный файл примерно следующего содержания: /* File : try.i */ %module mytry extern void echo;
>swig -python try.i >gcc -c -fpic try_wrap.c try.c -DHAVE_CONFIG_H -I"/usr/local/include/python2.5" -I"/usr/local/lib/python2.5/config" >gcc -shared try.o try_wrap.o -o _mytry.so или так: >swig -python try.i >gcc -c try_wrap.c try.c -DHAVE_CONFIG_H >gcc -shared try_wrap.o try.o -o _try.pyd -lpython25 Результат работыНабираем в интерпретаторе Python следующий текст >>> import mytry >>> mytry.echo "what's the hell!" >>>
# This file was automatically generated by SWIG. # Version 1.3.36 # # Don't modify this file, modify the SWIG interface instead. # This file is compatible with both classic and new-style classes. import _mytry import new new_instancemethod = new.instancemethod try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. def _swig_setattr_nondynamic: if : return self.this.own if : if type.__name__ == 'PySwigObject': self.__dict__ = value return method = class_type.__swig_setmethods__.get if method: return method if or hasattr: self.__dict__ = value else: raise AttributeError def _swig_setattr: return _swig_setattr_nondynamic def _swig_getattr: if : return self.this.own method = class_type.__swig_getmethods__.get if method: return method raise AttributeError,name def _swig_repr: try: strthis = "proxy of " + self.this.__repr__ except: strthis = "" return "<%s.%s; %s >" % import types try: _object = types.ObjectType _newclass = 1 except AttributeError: class _object : pass _newclass = 0 del types echo = _mytry.echo Просмотров: 1813
|