SWIG本质上是一个编译器,在最初的1.1版本中,它还不是很完善,有很多的C/C++指令以及数据类型不支持,而到了现在的1.3版,它基本上已经能够支持全部的C/C++特性。
内容如下:
- Full C99 preprocessing.
- All ANSI C and C++ datatypes.
- Functions, variables, and constants.
- Classes.
- Single and multiple inheritance.
- Overloaded functions and methods.
- Overloaded operators.
- C++ templates (including member templates, specialization, and partial specialization).
- Namespaces.
- Variable length arguments.
- C++ smart pointers.
现在唯一不支持的是内部类,它也将在今后的版本中得到支持。
简单数据类型
整型:swig会把下列数据类型转换成脚本语言中的整型。
- int
- short
- long
- unsigned
- signed
- unsigned
short
- unsigned
long
- unsigned
char
- signed
char
- bool
另外,虽然swig支持long long类型,但是在一些不支持long long的脚本语言中,比如Tcl、Perl5,long long会被转换成string类型,所以不能用来进行计算操作。
浮点型:
很多脚本中都是直接用double来表示浮点型。另外swig不支持不太被使用的long double类型
字符串类型:
char在脚本语言中被映射成一个长度为1的NULL结尾的ASCII字符串。
char*则被映射成一个NULL结尾的8-bit字符串。
另外,swig对wchar_t(Unicode)支持不太好,但一般采用UTF-8的形式来处理
全局变量
example.i
example_test.py
分享到:
相关推荐
swig工具,C/C++到python, tcl 的接口
C 和 C++ 被公认为...SWIG 允许您向广泛的脚本语言公开 C/C++ 代码,包括 Ruby、Perl、Tcl 和 Python。本文使用 Ruby 作为公开 C/C++ 功能的首选脚本接口。要理解本文,您必须具备 C/C++ 与 Ruby 方面的相应知识。
Python & C++ Comparisons Python C API SWIG
SWIG是个帮助使用C或者C++编写的软件能与其它各种高级编程语言进行嵌入联接的开发工具。SWIG能应用于各种不同类型的语言包括常用脚本编译语言例如Perl, PHP, Python, Tcl, Ruby and PHP。支持语言列表中也包括非脚本...
swig 打包C/C++程序;供python调用。 本软件操作平台windows 10 Vs2017;python3.8; 主要讲述swig vs配置,测试用例。 主要包含常量,变量,指针,结构体定义及运用。
In a nutshell, SWIG is a compiler that takes C/C++ declarations and creates the wrappers needed to access those declarations from other languages including including Perl, Python, Tcl, Ruby, Guile, ...
cmake_c++_python_swig
https://sourceforge.net/projects/swig/files/swig/swig-4.2.0/
故而将C库作为Python库的扩展极为必要,使得Python既融合了自身的优点,又融合了C语言的优点,正是因为这些性质使得Python越来越流行。 二、通过swing扩展C库 (1) 安装swig 命令: sudo apt-get install swig (2) ...
用swig实现在python中使用c++的函数和类的很少的介绍的文章
JavaCPP 提供了对 Java 内部本机 C++ 的高效访问,这与某些 C/C++ 编译器与汇编语言交互的方式没有什么不同。无需发明新语言,例如SWIG、SIP、C++/CLI、Cython或RPython。相反,与cppyy为 Python 所做的事情类似,它...
python调用C/C++有不少的方法,如boost.python, swig, ctypes, pybind11等,这些方法有繁有简,而pybind11的优点是对C++ 11支持很好,API比较简单,现在我们就简单记下Pybind11的入门操作。 1. pybind11简介与环境...
通过使用 SWIG,可与 Python、Java 等语言进行集成(当然可以单独使用C++)。 使用此框架可以快速开发出更多的插件和应用软件,此框架已在 Windows/Linux/MacOSX 上测试过。 要在 Windows 上编译和运行,请参考 ...
使用 SWIG 将 C++ 库移植到 Go 例外此代码旨在作为如何移植抛出异常的 C++ 库的示例。 所有抛出异常的方法都包含在 try/catch 块中,这些块将异常转换为恐慌,然后恢复以返回 go 错误。描述DemoLib C++ 类DemoLib ...
利用C和C++可以对它进行扩充。个别的应用软件如果需要有一个可程序化界面也可以利用它来做为扩展语言用。最后,Python的可移植度非常高:它可以在许多的Unix类平台上运行,在Mac,MS-DOS,视窗Windows,Windows NT,OS/...
将swig的路径添加到环境变量Path,例如set path=C:swigwin-3.0.2。 3.用VS创建一个win32 console application名为MyApp并生成解决方案,编译生成MyApp.exe。 4.在MyApp解决方案里面新建一个win32 dll带...
显示使用 SWIG 为 Java、Python 和 C# 生成包装器的示例。 结构: SwigExample.sln - Visual Studio 2013 解决方案 CSharpTest - 显示使用生成的 C# 包装器的 Visual Studio 单元测试代码 JavaTest - JUnit 单元...
这将构建 C++ 测试二进制文件,为outer.h和inner.h生成 SWIG 绑定,并使用 Python 包装器构建共享库。 运行它 测试显示了所有不同的场景: # Run a simple test of the pure-C++ code ./test # Run a simple test ...
SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. SWIG is used with different types of target languages including ...
借助于拥有基于标准库的大量工具、能够使用低级语言如C和可以作为其他库接口的C++,Python已成为一种强大的应用于其他语言与工具之间的胶水语言。 Python标准库的主要功能有: 文本处理,包含文本格式化、正则表达式...