用swig完成多语言支持

阅读freeswitch代码时,发现有个languages的mod,其中的作用为,支持java、python等多语言。采用的跨语言的工具叫做swig,Simplified Wrapper and Interface Generator。

这个工具的大致工作方法是

1、生成c或cpp的包装文件xx_wrap.cpp,生成某语言的调用文件,比如xx.py。

2、用xx_wrap.cpp和工作函数,生成动态库xx.so。

3、python工程通过xx.py调用xx.so.

具体操作如下:

1、编写example.i文件,语法参加swig的教程。

2、swig -python example.i 

3、gcc -c -fpic example.c example_wrap.c -I/usr/local/include/python2.0 

4、gcc -shared example.o example_wrap.o -o _example.so 生成so库文件

5、python import example 可以调用example里面c或c++的方法

另外,看开源的时候,可以根据xx_wrap.cpp的宏定义,来确定应用的语言,比如:SWIGPYTHON或者SWIGCSHARP等,这个wrap文件不要进行更改。

你可能感兴趣的:(c++)