1
0
Albert 5 жил өмнө
parent
commit
f13287de2e
1 өөрчлөгдсөн 20 нэмэгдсэн , 0 устгасан
  1. 20 0
      pages/common/swig.md

+ 20 - 0
pages/common/swig.md

@@ -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}}`