SWIG | |
---|---|
Type | Udviklingsværktøj |
Udviklere | Fællesskab |
Skrevet i | C, C++ |
Interface | Kommandolinje |
Operativ system | POSIX , MS Windows |
Første udgave | 1996 |
nyeste version | 4.0.2 ( 8. juni 2020 ) |
Licens | BSD-stil licens |
Internet side | swig.org |
SWIG ( s implified w rapper and interface generator ) er et gratis værktøj til at forbinde programmer og biblioteker skrevet i C og C++ med fortolket ( Tcl , Perl , Python , Ruby , PHP ) eller kompileret ( Java , C# , Scheme , OCaml ) Sprog. Hovedmålet: at give mulighed for at kalde funktioner skrevet på nogle sprog fra kode på andre sprog. Programmøren opretter en .i -fil med en beskrivelse af de eksporterede funktioner; SWIG genererer kildekode til limning af C/C++ og det ønskede sprog opretter en eksekverbar .
Typen af den eksekverbare fil afhænger af det valgte sprog:
Scriptsprogmotorer er indbygget i C/C++-programmer af følgende årsager:
Årsager til at gøre biblioteker med C/C++-funktioner tilgængelige for tolke af andre sprog:
SWIG er skrevet i C og C++ og er blevet udgivet under en BSD - lignende licens siden februar 1996 . SWIG-licensen giver dig mulighed for at bruge, distribuere og ændre SWIG-koden til kommercielle og ikke-kommercielle formål næsten uden begrænsninger.
Lad der være C-kode, der implementerer en eller anden funktion, for eksempel tekstudskrivning.
/* Fil: try.c */ #include <stdio.h> void echo ( void ) { printf ( " \" Hej verden \"\n " ); }For at kalde echo()- funktionen fra Python, skal du skrive en grænsefladefil (udvidelsen .i ) med følgende indhold:
/* Fil: try.i */ % modul mytry eksternt tomrum ekko ( tomrum );og kør følgende kommandoer i Unix - terminalen :
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 -delt try.o try_wrap.o -o _mytry.soFor Windows OS (når du bruger Cygwin eller MinGW ) vil kommandoerne være anderledes:
swig -python try.i gcc -c try_wrap.c try.c -DHAVE_CONFIG_H gcc -delt try_wrap.o try.o -o _try.pyd -lpython25SWIG vil automatisk oprette flere filer: " mytry.py ", " try_wrap.c " og en eksekverbar.
For at kalde funktionen echo() fra Python skal du starte fortolkeren og køre følgende kode:
>>> import mytry >>> mytry . echo () "Hej verden" >>>