Giriş
swig dosyaları genellikle "*.i" uzantısına sahip. swig ile üretilen şeyi ayrı bir jar veya assembly yapmak iyi bir fikir. Açıklaması şöyle.
Swig Dosyası Formatı
%{...%}
Açıklaması şöyle.
Şeklen şöyledir.
Şöyle yaparız
Komut Satırı Seçenekleri
-csharp seçeneği
C# kodu üretmek için kullanırız.
Örnek
C++'tan C# üretmek için şöyle yaparız.
Bir projede şu seçenekleri kullanarak kod üretmiştik. -c++ ile C++ parsing etkinleştirildi.
go dosyası üretmek için -cgo kullanırız. Burada module ismi swig inpute dosyası yerine -module seçeneği ile komut satırından veriliyor. Şöyle yaparız.
Include dizinini belirtir.
-python seçeneği
Şöyle yaparız.
swig dosyaları genellikle "*.i" uzantısına sahip. swig ile üretilen şeyi ayrı bir jar veya assembly yapmak iyi bir fikir. Açıklaması şöyle.
Whether you are just wrapping a few classes or en entire SDK and whether you write your own C++/CLI interoperability code, it is always good practice to have the C++/CLI code in a separate assembly since you will deal with unmanaged code and unmanaged code debugging which you WANT to centralize in a single component.
Swig Dosyası Formatı
%{...%}
Açıklaması şöyle.
The code between %{ and %} is copied directly into the generated wrapper.Örnek
Şeklen şöyledir.
%module foo
%{
#include<foo.h>
%}
%include foo.h
ÖrnekŞöyle yaparız
/* file : gfg.i */
/* name of module to use*/
%module gfg
%{
/* Every thing in this file is being copied in
wrapper file. We include the C header file necessary
to compile the interface */
#include "gfg.h"
/* variable declaration*/
double myvar;
%}
/* explicitly list functions and variables to be interfaced */
double myvar;
long long int fact(long long int n1);
int my_mod(int m, int n);
/* or if we want to interface all functions then we can simply
include header file like this -
%include "gfg.h"
*/
Komut Satırı Seçenekleri
-csharp seçeneği
C# kodu üretmek için kullanırız.
Örnek
C++'tan C# üretmek için şöyle yaparız.
swig -c++ -csharp -v foo.iÖrnek
Bir projede şu seçenekleri kullanarak kod üretmiştik. -c++ ile C++ parsing etkinleştirildi.
swig -c++ -csharp -o cswrapp.cpp -oh cswrap.h -dllimport mylib -outdir d:\test mycs.i-cgo seçeneği
go dosyası üretmek için -cgo kullanırız. Burada module ismi swig inpute dosyası yerine -module seçeneği ile komut satırından veriliyor. Şöyle yaparız.
swig -go -cgo -intgosize 64 -module mylib \
-o $WORK/mylib/_obj/mylib_wrap.cxx \
-outdir $WORK/mylib/_obj/ \
-I/mylib/lib \
-c++ mylib.swigcxx
-I seçeneği
Include dizinini belirtir.
-python seçeneği
Şöyle yaparız.
$(SWIG_PATH)\swig.exe -python gfg.i
Hiç yorum yok:
Yorum Gönder