设为首页 加入收藏

TOP

使用SWIG将C/C++库移植到其他语言中
2014-11-24 08:29:42 来源: 作者: 【 】 浏览:0
Tags:使用 SWIG C/C 移植 其他 言中

SWIG简介


SWIG是一个将C和C++语言程序绑定到其他语言的工具,可以让很多高层次的程序设计语言如脚本语言很方便地调用底层程序。SWIG支持很多的语言如Perl, PHP, Python, Tcl, Ruby, Java, C#, Octave和R等,这些语言在不同程度上支持本地接口调用。利用SWIG,只需写一些接口文件,就可以生成一些用相应语言的本地接口库封装的代码。利用C和C++编译器编译成动态库文件后,就可以直接用高层次的语言调用了。SWIG在很多的跨平台的项目中都得到了广泛的应用,例如Subversion, PyOgre, PyOpenGL, wxPython等。


SWIG的下载与安装


sudo apt-get install swig


在Windows系统或者其他的Linux版本上,可以下载源代码包,下载地址:http://prdownloads.sourceforge.net/swig/swig-2.0.9.tar.gz


在Linux系统下,解压缩后,运行


./configure
make


编译完成后就可以使用。


在Windows系统下,建议安装MinGW或者Cygwin,使用gcc编译器编译。


准备源文件和接口文件


在运行SWIG之前,首先要准备好C/C++程序的源文件,并编写接口文件。这里采用一个简单的例子,要封装的是一个叫做Example的模块。


swig -java Example.i


我们要导出Example.c文件中所有变量和函数中。如下所示。


/* Example.c */
include


int integer = 100;


int add(int a, int b)
{
return a + b;
}


char* getString()
{
return "Some string";
}


void printLine(const char* str)
{
printf("%s\n", str);
}


新建一个文件Example.i,输入以下内容:


%module Example


%{
extern int integer;
extern int add(int a, int b);
extern char* getString();
extern void printLine(const char* str);
%}


extern int integer;
extern int add(int a, int b);
extern char* getString();
extern void printLine(const char* str);
 


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Tiny6410开发板上Linux系统的安装 下一篇CRC32 逆向算法的C语言实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·MySQL 基础入门视频 (2025-12-26 23:20:22)
·小白入门:MySQL超详 (2025-12-26 23:20:19)
·关于 MySQL 数据库学 (2025-12-26 23:20:16)
·SOLVED: Ubuntu 24.0 (2025-12-26 22:51:53)
·Linux 常用命令最全 (2025-12-26 22:51:50)