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

swig官方学习笔记(c and python)

 
阅读更多

跟随官方教程

 

1. 编写C文件example.c

 

 #include <time.h>
 double My_variable = 3.0;
 
 int fact(int n) {
     if (n <= 1) return 1;
     else return n*fact(n-1);
 }
 
 int my_mod(int x, int y) {
     return (x%y);
 }
 	
 char *get_time()
 {
     time_t ltime;
     time(&ltime);
     return ctime(&ltime);
 }

 

2. 编写接口文件 example.i 

 

 %module example
 %{
 /* Put header files here or function declarations like below */
 extern double My_variable;
 extern int fact(int n);
 extern int my_mod(int x, int y);
 extern char *get_time();
 %}
 
 extern double My_variable;
 extern int fact(int n);
 extern int my_mod(int x, int y);
 extern char *get_time();

 

 

3. 生成python接口文件——example.py、 example_wrap.c

swig -python example.i

4. 编译C文件 

#这里官方教程没跑成功,自己find下路径
gcc -c example.c example_wrap.c -fpic -I/home/tools/Python-2.7.9/Include/ -I/home/tools/Python-2.7.9/
ld -shared example.o example_wrap.o -o _example.so

 5. 运行

 

启动python(!!这里要使用和上面匹配的python版本)

 

 >>> import example
 >>> example.fact(5)
 120
 >>> example.my_mod(7,3)
 1

 

--end

 

 

分享到:
评论

相关推荐

    swig的学习以及国密的python封装.zip_python 国密_swig的学习以及国密的python封装_国密

    标题中的“swig的学习以及国密的python封装”是指通过SWIG(Simplified Wrapper and Interface Generator)工具将中国的国家密码算法(简称国密)封装为Python库的过程。SWIG是一个工具,它允许C/C++代码与多种高级...

    cmake_c++_python_swig

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

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

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

    Python C++ and SWIG

    通过使用 SWIG (Simplified Wrapper and Interface Generator) 等工具,可以在保持 Python 的灵活性、生产力和易于维护的同时,利用 C 或 C++ 的高性能部分。这种方法使得 Python 程序员可以在需要的地方调用 C 或 ...

    C语言与Python语言混合编程的接口设计.pdf

    5. 学习使用Python的扩展接口,例如Cython、ctypes、或者SWIG,来构建两种语言之间的通信桥梁。 6. 掌握在C语言中创建可被Python调用的动态链接库(DLL)或共享对象(SO)的方法。 7. 了解如何处理在混合编程时可能...

    using swig to bind c++ to python

    SWIG(Simplified Wrapper and Interface Generator)是一款开源工具,用于创建C/C++代码与多种解释型语言(如Python、Perl、Tcl等)之间的接口。它最初是为了解决大型并行模拟代码中的物理包与解释型语言交互的问题...

    swig学习资料.doc

    SWIG(Simplified Wrapper and Interface Generator)是一种强大的工具,用于将 C 和 C++ 代码链接到各种高级编程语言。通过 SWIG,开发者能够轻松地创建与 C/C++ 库交互的脚本程序,极大地简化了跨语言编程的过程。...

    swig-3.0.12-windows版本安装包

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

    swig 打包C++ python应用

    swig 打包C/C++程序;供python调用。 本软件操作平台windows 10 Vs2017;python3.8; 主要讲述swig vs配置,测试用例。 主要包含常量,变量,指针,结构体定义及运用。

    Python 学习笔记.zip

    这份“Python学习笔记”涵盖了从基础到进阶的各种主题,旨在帮助初学者和有一定经验的程序员深入理解Python语言的核心概念。 笔记可能包括以下几个部分: 1. **Python基础**:这部分可能涉及变量、数据类型(如...

    基于SWIG的Python仪器驱动封装技术.pdf

    为了解决这一问题,SWIG(Simple Wrapper and Interface Generator)作为一款跨语言接口转换工具,能够有效地将C、C++等静态编译型语言与Python等动态脚本语言进行接口转换,从而弥补Python在仪器编程方面的不足。...

    swig--在java、C#中调用c++写的DLL(以vs2012配置为例)

    标题中的“swig”是指Software Interface Generator,它是一个开源工具,用于将C和C++代码与多种编程语言(如Java和C#)互操作。在本案例中,我们将探讨如何利用SWIG在Java和C#中调用由C++编写的动态链接库(DLL)。VS...

    swig实例java调用c

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

    C语言实现的python里面的filtfilt函数.rar

    这通常涉及到创建一个C接口,比如使用`ctypes`库来加载动态链接库(DLL),或者使用`Cython`或`SWIG`等工具生成Python绑定。 在实际使用中,C语言版的`filtfilt`可能会提供与Python原生版本相同的参数,如滤波器...

    SWIG4.0开发手册

    SWIG(Simplified Wrapper and Interface Generator)是一种开源的软件开发工具,旨在帮助程序员将C或C++代码库与高级编程语言如Python、Perl、Ruby、Tcl、PHP等进行接口封装,实现代码重用和扩展。使用SWIG,可以...

    swig-2.0.9

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

    基于SWIG的Python仪器驱动封装技术.zip

    SWIG(Simplified Wrapper and Interface Generator)是一种工具,它能够自动创建C/C++代码与多种高级语言,如Python,之间的接口。本篇文章将深入探讨如何利用SWIG将C/C++编写的仪器驱动程序封装为Python可调用的...

    GDAL库学习笔记

    GDAL不仅适用于C/C++,还通过SWIG接口支持多种编程语言,如Python,使得地理数据处理变得更加便捷。 在Python中使用GDAL,首先需要安装GDAL库及其Python绑定。通常可以通过Anaconda或pip来安装: ```bash conda ...

    swig-4.0.2-windows版本安装包

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

Global site tag (gtag.js) - Google Analytics