`
yangzb
  • 浏览: 3492127 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

SWIG是什么

阅读更多

  SWIG是什么?

  SWIG是一种简化脚本语言与C/C++接口的开发工具。简而言之,SWIG是一个通过包装和编译
  C语言程序来达到与脚本语言通讯目的的工具。
  。怎么使用SWIG?
  首先解释C/C++语言编程的优缺点,
  。一个简单的示例:
  -SWIG接口文件
  -swig命令
  -创建Perl5模块
  -创建Python模块
  -快捷方式
  。支持的C/C++特性
  因为C/C++的标准正在进步,因此SWIG也是一个不断发展的过程,在1.3版本中支持的特性包括:
  -完全支持C99预处理
  -所有的ANSI C和C++数据类型
  -支持函数、常量、变量
  -支持类
  -单重或者多重继承
  -函数、方法的重载
  -运算符重载
  -C++模版
  -命名空间
  -变长传入参数
  -C++ 的 smart指针
  。“非侵入式”创建接口
  对原有的C/C++源代码只需要很小的改动,或者根本不用改动。
  。将SWIG合并入安装系统
  当我们对原有的source code进行make或者build时,如何巧妙的将SWIG嵌入其中。
  这是我们要重点考虑的问题。
  。自动产生代码
  SWIG通过的input文件的parse,自动生成output文件(wrapped),完全不需要手工
  干预(事实上,因为产生的output文件十分复杂,大部分人也不会原意手动去修改源文件)
  。SWIG与自由
  我们无意在这里讨论纷乱复杂的政治问题,只是要指出SWIG是根据一种特定的编程“哲学”
  开发出来的。这种哲学的精髓在于假设程序员本人都是很聪明的,而工具只需要安守本分
  就好。
  SWIG试图理解最为复杂的C++语法并将其翻译为一系列简单的接口,而且所有的输出都
  符合ANSI C标准,因而可以依赖任意一款编译器进行编译,这也保证了程序人员免于在
  调试非标准C/C++语言方面付出的多余劳动。
  第5章:SWIG基础
  。运行SWIG
  敲入swig命令,不带任何参数,就可以看到swig的所有参数输出和详细说明。
  输入文件的格式,带.swg或.i后缀名的文件,最常见的格式如下所示:
  %module my_module
  %{
  #i nclude
  %}
  extern double result;
  void output_throught();
  MyClass *my_class;
  输出文件:
  如果没有任何特别参数说明,输出文件包括一个包装source(my_module_wrap.cxx ,一个头文件。
  。对C的声明进行简单包装
  举例说明,用SWIG将C source包装为一个python模块,并输出。
  处理基本类型问题,int/short/long/unsigned/signed/
  全局变量,SWIG可以将全局变量映射为脚本语言的变量。
  常量……
  。指针与复杂对象
  简单的指针,最基本的C数据类型指针。
  空指针NULL,被解释为字符串“NULL”或者是0值。
  。其他实际问题
  带值返回
  。structure和union
  SWIG在处理Structure和Union时,存在的技巧和问题。
  。代码插入
  。建立接口的策略

分享到:
评论

相关推荐

    swig使用手册

    **2.1 SWIG是什么?** SWIG是一种自动化工具,用于构建C/C++库与各种脚本语言之间的桥梁。其核心功能在于解析C/C++头文件,并根据所选目标语言生成相应的封装代码,从而实现跨语言调用。 **2.2 为何使用SWIG?** ...

    SWIG4.0开发手册

    手册内容覆盖了从基本概念到高级应用的各个方面,包括SWIG的版本介绍、许可证信息、安装方法、目标语言支持情况、实际使用SWIG的例子、如何创建SWIG接口文件、SWIG命令的使用、如何构建Perl、Python等语言模块、SWIG...

    swig-4.0.2-windows版本安装包

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于自动构建接口,使得C和C++的库可以被多种高级脚本语言如Python、Perl、Java等调用。在这个"swig-4.0.2-windows版本安装包"中,我们有两个...

    使用Swig转换C++库到C#示例代码

    Swig(Simplified Wrapper and Interface Generator)是一种工具,它能够自动将C++库转换为其他编程语言,如C#,从而让这些语言可以调用C++的函数和类。在这个"使用Swig转换C++库到C#示例代码"的压缩包中,我们有三...

    SWIG源码及工具

    **SWIG源码及工具详解** SWIG(Simplified Wrapper and Interface Generator)是一个开源的工具,主要用于自动构建软件的跨语言绑定。它使得C或C++的程序可以方便地与多种高级语言,如Python、Java、Perl、Tcl、...

    swig-3.0.12-windows版本安装包

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,它能自动将C或C++库封装为多种高级语言,如Python、Perl、Java等。在本案例中,我们讨论的是SWIG的3.0.12版本针对Windows操作系统的安装过程...

    swig学习资料.doc

    **2.1 什么是 SWIG?** SWIG 是一种自动接口生成器,它能够从 C/C++ 函数和类的声明中自动生成所需的包装代码,使这些函数和类可以被其他脚本语言调用。 **2.2 为什么使用 SWIG?** SWIG 提供了一种简单而高效的...

    swig4.1.1linux版+windows版

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动绑定到多种脚本语言,如Python、Perl、Ruby等。它简化了创建这些语言的接口的过程,使得C/C++库可以方便地在各种脚本...

    swig工具,C/C++到python, tcl 的接口

    SWIG工具,C/C++到python、tcl的接口 SWIG(Simplified Wrapper and Interface Generator)是一种开源的接口生成工具,可以将C/C++语言与各种脚本语言集成,包括Python、Tcl、Perl、 Ruby等。SWIG的主要功能是生成...

    SWIG-4.0.2 for windows swig.exe

    SWIG-4.0.2官方版本,由于有时官网上不了,放在这里方便使用 SWIG Version 4.0.2 Compiled with i686-w64-mingw32-g++ [i686-w64-mingw32] Configured options: +pcre

    cmake_c++_python_swig

    标题 "cmake_c++_python_swig" 涉及的是使用CMake构建C++项目,并通过SWIG(Simplified Wrapper and Interface Generator)工具来创建Python接口的过程。这个主题是跨语言编程的一个重要方面,特别是在科学计算、...

    前端开源库-koa-swig

    "前端开源库-koa-swig" 指的是一个针对前端开发的开源库,它基于 Koa 框架并集成了 Swig 模板引擎。Koa 是由 Express 团队成员开发的一个轻量级 Node.js 框架,而 Swig 是一个强大的、灵活的模板引擎,常用于数据...

    swig-1.3.40 for windows

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动封装成其他编程语言的接口,比如Python、Java、Perl、PHP等。在Windows平台上,SWIG通常以预编译的二进制形式提供,如本...

    SWIG英文说明书

    根据提供的文件信息,我们可以深入探讨SWIG的相关知识点。SWIG(Simplified Wrapper and Interface Generator)是一种强大的工具,用于连接程序设计语言(如C、C++)与多种高级编程语言(如Python、Java等)。下面将...

    android ndk swig例子

    Swig(Simplified Wrapper and Interface Generator)则是一个工具,用于自动生成C++、Java等语言之间的接口,使得本地代码能够与Java代码交互。 本示例“android ndk swig例子”显然是一个关于如何在Android项目中...

    swig-2.0.10 .tar.gz

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码与多种高级语言(如Python、Perl、Java、Ruby等)连接起来。`swig-2.0.10.tar.gz` 是SWIG的一个版本,具体是2.0.10版的源码...

    SWIG Specification

    SWIG(Simplified Wrapper and Interface Generator)是一种软件开发工具,其主要功能是简化将不同编程语言接口到C和C++程序的任务。SWIG能够在不需要修改现有代码的基础上,自动创建其他编程语言(如Perl、Python、...

    swig-2.0.9

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++库自动绑定到多种高级语言,包括Python和Lua。标题"swig-2.0.9"指的是SWIG的2.0.9版本,这是一次重要的更新,可能包含性能优化、...

    swig-3.0.12.tar

    SWIG(Simplified Wrapper and Interface Generator)是一款强大的工具,用于将C和C++代码自动封装成其他编程语言的接口,比如Python、Java、Perl、PHP等。SWIG 3.0.12是该工具的一个特定版本,它包含了对各种语言...

    swig实例java调用c

    `Swig`(Simplified Wrapper and Interface Generator)是一个强大的工具,它允许我们创建接口,使得Java等高级语言能够调用C或C++编写的库。本实例主要讲解如何使用Swig来实现Java调用C代码,并通过DLL动态链接库...

Global site tag (gtag.js) - Google Analytics