VEDEL | |
---|---|
Típusú | Fejlesztő eszköz |
Fejlesztők | Közösség |
Beírva | C, C++ |
Felület | Parancs sor |
Operációs rendszer | POSIX , MS Windows |
Első kiadás | 1996 |
legújabb verzió | 4.0.2 ( 2020. június 8. ) |
Engedély | BSD stílusú licenc |
Weboldal | swig.org |
A SWIG ( s implified w rapper and i nterface generator ) egy ingyenes eszköz C és C++ nyelven írt programok és könyvtárak összekapcsolására értelmezett ( Tcl , Perl , Python , Ruby , PHP ) vagy lefordított ( Java , C# , Scheme , OCaml ) ) nyelvek. A fő cél: lehetővé tenni bizonyos nyelveken írt függvények meghívását más nyelvű kódból. A programozó létrehoz egy .i fájlt az exportált függvények leírásával; A SWIG forráskódot generál a C/C++ és a kívánt nyelv ragasztásához, létrehoz egy végrehajtható fájlt .
A végrehajtható fájl típusa a kiválasztott nyelvtől függ:
A szkriptnyelvi motorok a C/C++ programokba vannak beépítve a következő okok miatt:
A C/C++ függvénykönyvtárak más nyelvek tolmácsai számára elérhetővé tételének okai:
A SWIG C és C++ nyelven íródott, és 1996 februárja óta BSD - szerű licenc alatt adták ki . A SWIG licenc lehetővé teszi a SWIG kód kereskedelmi és nem kereskedelmi célú felhasználását, terjesztését és módosítását gyakorlatilag korlátozás nélkül.
Legyen olyan C kód, amely valamilyen funkciót valósít meg, például szövegnyomtatást.
/* Fájl: try.c */ #include <stdio.h> void echo ( void ) { printf ( " \" Hello World \"\n " ); }Az echo() függvény Pythonból való meghívásához egy interfészfájlt ( .i kiterjesztésű) kell írnia a következő tartalommal:
/* Fájl: try.i */ % modul mytry extern void echo ( void );és futtassa a következő parancsokat a Unix terminálon :
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.soWindows operációs rendszer esetén ( Cygwin vagy MinGW használatakor ) a parancsok eltérőek lesznek:
swig -python try.i gcc -c try_wrap.c try.c -DHAVE_CONFIG_H gcc -megosztott try_wrap.o try.o -o _try.pyd -lpython25A SWIG automatikusan létrehoz több fájlt: " mytry.py ", " try_wrap.c " és egy végrehajtható fájlt.
Az echo() függvény Pythonból való meghívásához indítsa el az értelmezőt, és futtassa a következő kódot:
>>> import mytry >>> mytry . echo () "Hello World" >>>