swig: add page (#3951)

client-spec/clarity
Albert 2020-04-01 02:17:09 +02:00 committed by GitHub
parent 52edacb27d
commit f13287de2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 20 additions and 0 deletions

20
pages/common/swig.md Normal file
View File

@ -0,0 +1,20 @@
# swig
> Generate bindings between C / C++ code and various high level languages such as Javascript, Python, C#, and more.
> It uses special .i or .swg files to generate the bindings (C/C++ with SWIG directives, then outputs a C/C++ file that contains all of the wrapper code needed to build an extension module.
- Generate a binding between C++ and Python:
`swig -c++ -python -o {{path/to/output_wrapper.cpp}} {{path/to/swig_file.i}}`
- Generate a binding between C++ and Go:
`swig -go -cgo -intgosize 64 -c++ {{path/to/swig_file.i}}`
- Generate a binding between C and Java:
`swig -java {{path/to/swig_file.i}}`
- Generate a binding between C and Ruby and prefix the Ruby module with {{foo::bar::}}:
`swig -ruby -prefix "{{foo::bar::}}" {{path/to/swig_file.i}}`