Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - 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
Просмотров: 2040
|