SWIG

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 14. oktober 2018; checks kræver 3 redigeringer .
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.

Eksempel: kalder en C-funktion fra Python

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.so

For 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 -lpython25

SWIG 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" >>>


Links

Litteratur

  • Hans Petter Langtangen. Python scripting til beregningsvidenskab. - Springer, 2008. - 750 s. — ISBN 9783540739159 .