swig, python, g++

最近在搞GIS的东西,有些底层的库需要封装为python的extension.

 

swig虽然古老,但是是个不错的东西, 对于c-style的library来说 很适合。

 

在编译为动态库前记得将后缀名改为 .pyd

按照swig的文档 .so 和 .dll 均不起作用。很奇怪

 

使用环境:

python 2.5

mingw g++ ver: 3.4.5

swing 1.3.14

在linux机器下使用swig将大型C++项目转python方法全流程 近期在公司做了使用swig将C++转为python可调用接口,项目规模较大,中间遇到了很多坑,也走了很多弯路,今天在这里记录一下,以供今后查阅。 首先,我们使用swig命令生成xxx_wrap.cxx文件,该过程比较简单,命令为 swig -c++ -python -o xxxx_wrap.cxx xxxx.i 在执行了这一命令后,我们可以得到两个文件,分别为xxxx.py和xxxx_wr... 阅读详情

相关推荐

CTP-API v6.7.0 Python封装实战:Windows/Linux双平台避坑指南

本文详细介绍了CTP-API v6.7.0在Windows和Linux双平台下的Python封装实战,涵盖环境配置、编译调试、性能优化及部署方案。通过具体代码示例和避坑指南,帮助开发者高效实现量化交易接口的跨平台调用,特别针对字符编码、动态库链接等常见问题提供解决方案。

potato的博客 733

最简单C/C++数据可视化函数库MathGL配置方法

1、简介: MathGL是一个可用于C/C++数据可视化的函数库,可以对不同种类的数据进行可视化。由于MathGL本身不具有显示功能,需要配合opencv以及其他可视化工具才能够显示图形。 由于目前绝大多数的使用MathGL的教程或方法,都是对MathGL的库文件下载后进行编译,由于MathGL除需要本身外还依赖其他5个函数库,整个过程中还需要克服各个库直接的版本问题,所以对于大多数人来说,进行这些库的编译会很困难。 在此介绍一种十分简便,配置十分快捷的方式。 MathGL网址:http://mathgl.

qq_41023270的博客 9960

Python广度优先搜索BFS - 蓝桥13届省赛污染海域

请问这片N * M海域中有几块是没被污染的独立海域(没被污染的独立海域是指该块海域上下左右被已污染的海域包围,且N * M以外的海域都为已被污染的海域)有一片海域划分为N * M个方格,其中有些海域已被污染(用0表示),有些海域没被污染(用1表示)。第二行开始输入N行,每行M个数字(数字只能为1或者0,1表示没被污染的海域,0表示已被污染的海域)这块4 * 5的海域,有3块海域(绿色)没被污染,因为每一块的上下左右都被污染的海域包围。输出一个整数,表示N * M的海域中有几块是没被污染的独立海域。

m0_69865359的博客 264

MathGL2.4+VS2019+Qt5 开发环境配置

--------By 九磅十五便士 1. 什么是MathGL MathGL是一个能够应用在Linux和windows下高质量显示图形的开源库,通常应用与科学绘图或大型数组(矩阵)的可视化。 同时MathGL内部也包含有诸多拟合函数,类似Matlab中的一些fitting功能。使用过程中仅需要一些样本数据点以及输入这些点的经验公式即可。但是依据...

weixin_43953829的博客 4087

3D视觉革命丨多相机协同拼接技术如何重塑工业检测边界

本文深入探讨了多相机协同拼接技术如何突破单台3D相机的物理局限,实现工业检测从“点面”到“立体”的无死角覆盖。通过拆解系统标定、同步融合等核心技术,并结合锂电池、长轴零件等实战案例,揭示了该技术如何以虚拟“超级视觉传感器”重塑检测边界,提升精度与效率。

weixin_29056865的博客 386

锐浪报表 Grid++Report 子报表 Delphi

锐浪报表 Grid++Report 是国内较好的报表控件,本人一直使用它,做出很多特色的报表。可以说你的报表设计出来,它基本上能做出来。 但是它帮助文件上,说的不深,近期因为要做一个有关社工的报表,大表中,嵌套2个子表。可以说,一个表到三个数据集,分别打印。 在认真看了帮助的基础上,网上探索,基本无此类,特别是Delphi的帮助,几乎为零。经二天摸索,做出来了。 一、设计思路 1、大表和二个小表,可以设计为三个表,分别使用三个GridppReport控件,取名...

lyhoo163的专栏 9071

C++可视化库推荐

推荐几个c++可视化的库。 1.MathGL MathGL是用于在Linux和Windows下制作高质量科学图形的库;一个用于快速绘制和处理大型数据数组的库;用于在窗口和控制台模式下工作并易于嵌入其他程序的库。MathGL可以绘制各种图形。这包括: 一维(图,面积,条,步,茎,圆环,图,误差,管,标记,请参见一维图); 二维绘图(网格,冲浪,密度,连续,连续F,框,轴向,秋天,皮带,平铺,);...

缘如风的博客 2万+

【Android】汽车电源管理:深入解析CarPowerManager与Suspend To RAM的交互机制

本文深入解析了Android Automotive OS中CarPowerManager与Suspend To RAM(深度睡眠)的交互机制。详细阐述了从车辆发出睡眠请求,到CarPowerManagementService协调应用状态,最终通过内核进入低功耗睡眠的完整流程,并探讨了唤醒机制、开发者实践及功耗优化策略,为车机应用开发与系统优化提供关键指导。

weixin_28339967的博客 289

mathGL

mathGL就是用来绘制一些统计图形的一个CPP的库, 实际上就是和gnuplot类似的一个C++的库,很适合科学计算的结果分析和统计,另外还有QT,python等支持的接口,只是在编译库的时候要加上相应的option,这个库用起来很好,减少了很多工作量,其核心调用方式就是使用一个函数指针. int mathgl_callback(mglGraph *gr) { const Polar

Coder 8664

Python爬虫实战:5分钟搞定东方财富A股数据抓取(附完整代码)

本文提供了一套基于Python的A股数据自动化采集与分析系统构建方案。文章详细解析了如何通过稳健的爬虫框架从东方财富等公开数据源高效抓取A股数据,并设计数据库进行自动化存储与管理,特别适合量化研究和数据分析场景。

weixin_29062963的博客 4427

TOD和PPS精确时间同步技术

授时

u010783226的专栏 1万+

Python与C++,SWIG

Python与C++,SWIGPython调用C++ 编译C++源码 本文主要讲述的是Python扩展方式调用C++库,本例中使用的第三方库是Snmp++。读者请自行到官网下载源码编译安装,这里不在详细的说明。 /*client_intf_cxx_wrap.cpp*/ #include "Python.h" #include <iostream>#include <libsnmp.h> #incl

jjp837661103的专栏 946

Synopsys PCIe IP Loopback功能深度解析与应用实践

本文深入解析了Synopsys PCIe IP的Loopback功能,包括本地数字环回和远程环回两种模式的应用实践。通过详细的寄存器配置步骤和实战案例,帮助开发者快速掌握PCIe芯片验证与调试技术,提升系统开发效率。特别适合PCIe协议相关的硬件工程师和验证工程师参考。

weixin_29198045的博客 530

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

test.cpp   #include &lt;iostream&gt; int go() { std::cout &lt;&lt; "GOGOGOG" &lt;&lt; std::endl; return 0; } int main(int argc, char **argv) { go(); }     test....

The Big Data Way 277

C++ int转四字节数组

字节转换

我不是码农的博客~~~ 972

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

ubuntu22.04上用swig封装c++版本的ctp接口供python3调用

ubuntu22.04下用swig转换指定的ctp版本供python3调用

weixin_48434174的博客 458

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

gem5学习2——Dependencies

原文参见:gem5 Dependencies 1、支持平台 操作系统 gem5在Linux和Mac OS X下表现最好。大多数开发者以及我们当前的回归系统使用Linux,因此Linux平台有最好的支持。很多开发者也使用Mac OS X,因此该平台也能很好的支持gem5。 对于OS X,运行gem5最简单的方法是使用macports和默认的系统编译器。 gem5对类Unix操作系统具有可移植

ivy_reny的专栏 1972

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python生成静态库_python通过swig调用静态库

swig - Simplified Wrapper and Interface Generatorswig可以支持python,go,php,lua,ruby,c#等多种语言的包裹本文主要记录如何使用swig创建一个可供python中调用静态库接口首先手上有一个头文件(.h)以及一个静态库文件(.a),这是常见的api分发方式libcode.a code.h看一下code.h中的内容:int en...

weixin_39819152的博客 313

Linux下swig的正确安装 | 第一个(C++转Python接口)测试示例 | (二)

本博文教程在Linux环境下进行C++编译和测试,因此,需要Linux下C++环境可用 本博文相关代码主要来自于官方 PDF文档查阅链接 文档查阅 PDF 文档查阅链接 http://www.swig.org/Doc4.0/index.html 第一部分:Linux下swig的安装 查看 gcc 、g++版本 gcc -v Using built-in specs. COLLECT_GCC=gcc .. .. gcc version 7.5.0 (Ubuntu 7.5.0-3ubunt.

专注于AI领域前沿技术学习与分享:目标检测、图像修复、超分重建、AI工程化 3913

Linux系统下使用SWIG编译方法

首先需要创建需要的.i文件,可以参考网上的其他教程,在此不再赘述。 命令swig -c++ -python -o xxx_wrap.cxx xxx.i 使用.i文件生成.cxx文件与.py文件 为了编译生成可用的.so文件,我们需要xxx.cpp的xxx.o文件与xxx_wrap.cxx的xxx_wrap.o文件,使用命令: g++-fPIC -I ./ -c xxx.cpp g++...

蹦蹦跳跳小米粒的博客 1262

在Python中调用C++,使用SWIG

http://www.coder4.com/archives/2141 SWIG:Simplified Wrapper and Interface Generator,顾名思义,就是将C/C++包装为其他高级语言的Wrapper工具,非常好用。 该项目历史悠久(创始于1995年!),且一直非常活跃,目前最新版本为2011年5月发布的2.0.4。 1、安装SWIG ...

weixin_30416871的博客 92

swig与python

当你觉得python慢的时候,当你的c/c++代码难以用在python上的时候,你可能会注意这篇文章。 swig是一个可以把c/c++代码封装为python库的工具。(本文封装为python3的库) c/c++实现功能 => c/c++封装c/c++函数 => 将前两者编译生成动态库 => python进一步封装 (1)手动封装c函数 1. 我把实现和封装放在一个文件中(add.c)。 //add.c #include <python3.5/Python.h> /

huhuandk的博客 540

Linux下利用SWIG完成Python对使用OpenCV的C++文件的调用

因为项目需要,需要将C++实现的算法代码改成可以被Python调用的形式。又一次要实现不同编程语言之间的通信,这一次还需要架设到服务器上去,我花了很多时间走了不少弯路才把整个过程完成。在这里记录一下防止其他人或者自己再走弯路。 首先了解到一般使用SWIG进行C++与其它语言的通信,刚开始在自己的Windows系统中完成了整个步骤,具体教程可以看(http://blog.youkuaiyun.com/a857

xhmcom的博客 4406

swig步骤说明

准备好需要的文件 demo.h、libdemo.so(研发提供的api .h文件和动态库) demo.i(自己编写的swig封装说明文件) 通过SWIG进行封装 swig根据demo.i生成demo_wrap.cxx和demo.py两个文件 swig -c++ -python demo.i 2.将上一步产生的demo_wrap.cxx编译为demo_wrap.o文件 g++ -O2 -f...

buer0的博客 456

利用swig实现python调用C/C++的方法

利用swig实现python调用C/C++的方法  Python是一门语法简单而且清晰的脚本语言,不过执行效率比较低。简单的说就是开发相对C/C++容易,但是执行效率不如C/C++,甚至有人称之为执行效率最低的鱼眼。如果可以将最重要的而且变化一般不大的运算逻辑用 C/C++实现,其他用python书写,那就最好不过了。据说python底层就是用C实现的,因此这一想法也是可行的。目前来说,py

无与伦比BLOG 1952
上一篇: 西安之旅1
下一篇: 我与python的故事
mathgl
博客等级 码龄19年 1粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值