编译C/C++为dll供Python调用
首先写一个简单的lzb_add.c文件如下:
#include <stdio.h>
int add_int(int, int);
float add_float(float, float);
int add_int(int num1, int num2) {return num1 + num2;
}
float add_float(float num1, float num2) {return num1 + num2;
}
然后将lzb_add.c编译为lzb_add.dll文件,方法如下:
首先要有gcc,然后命令行cd到c文件目录,执行下面命令,会在当前目录生成一个lzb_add.dll文件
gcc -shared -o lzb_add.dll .\lzb_add.c
有了这个dll文件,就可以给Python使用了
from ctypes import *
adder = CDLL('./lzb_add.dll')
res_int = adder.add_int(4,5)
print("Sum of 4 and 5 = " + str(res_int))a = c_float(5.5)
b = c_float(4.1)
add_float = adder.add_float
add_float.restype = c_float
print "Sum of 5.5 and 4.1 = ", str(add_float(a, b))
输出:
Sum of 4 and 5 = 9
Sum of 5.5 and 4.1 = 9.600000381469727
编译C/C++为dll供Python调用相关推荐
- VS2017 生成DLL 供python 调用
今天突然想到python调用C++的问题,其中碰到了很多坑,最后终于弄好了,写博客来记录一下,以免忘记了: VS2017生成DLL python调用 VS2017生成DLL 1.新建项目->wi ...
- matlab将cpp编译为dll,Matlab函数编译成dll供Cpp调用的方法图解教程
曾经实现过将matlab函数编译成dll供Cpp调用,这篇文章的目的是对新增的面向对象的的扩展mwArray进行讲解,matlab很容易和C/C++联合起来使用. 以前做过matlab7与c++的混合 ...
- 关于win7下编译pyx文件生成pyd文件供Python调用
在运行python程序的时候,会发现有些模块不是用Python语言编写的,而是用C/C++编写的,主要是考虑到C/C++编写的模块相对Python脚本语言编写的模块执行速度更快.那么在调用这些由C/C ...
- Matlab函数封装为DLL供Cpp调用
Matlab函数封装为DLL供Cpp调用 文章目录 Matlab函数封装为DLL供Cpp调用 Ⅰ目标 Ⅱ 学习 Ⅲ 实现 1. Matlab 函数封装为DLL 2. vs2015中C++调用Matla ...
- Windows使用MSVC,命令行编译,链接64位dll,Python调用
文章目录 代码 编译 链接 Python调用 前一篇博客: Windows下使用Visual Studio自带的MSVC,命令行编译C/C++程序 代码 mylib.h代码如下: #ifndef MY ...
- 【转】matlab函数编译成dll供Cpp调用的方法
转自:https://www.cnblogs.com/vincenzo/archive/2009/09/09/1563467.html 以前做过matlab7与c++的混合编程:将m函数编译成dll给 ...
- 如何将c语言程序封装供python调用_C++调用python
C++调用python 在C/C++中嵌入Python,可以使用Python提供的强大功能,通过嵌入Python可以替代动态链接库形式的接口,这样可以方便地根据需要修改脚本代码,而不用重新编译链接二进 ...
- 如何将c语言程序封装供python调用_一起学opencv-python四十五:opencv绑定python,python和c++互调...
opencv-python系列教程来到了最后一讲.感谢一路的坚持. 如何生成OpenCV-Python绑定? 在OpenCV中,所有算法都是用C ++实现的.但是这些算法可以用于不同的语言,如Pyth ...
- matlab2014a + win764bit + vs2013混合编程(.m转成dll供C++调用)
在matlab中可以通过mbuild工具将.m文件编译成dll文件供外部的C++程序调用,这样就可以实现matlab和C++混合编程的目的. 1. 使用matlab生成dll文件 1.1 首先需要带有 ...
最新文章
- ASP解析JSON例子
- 【必看】做了3年运维却不涨薪?那是你还没get这个技能
- 技术人员应该如何培养
- Linux下设置普通用户使用sudo命令
- 玩客云pc端_玩客云电脑客户端-玩客云pc端下载 v1.4.5.112官方版--pc6下载站
- 自动软件签到Android代码,Android辅助工具,G分助手的实现 - 心悦俱乐部app自动签到、领G分...
- 单目标跟踪(模板更新)(UpdateNet)《Learning the Model Update for Siamese Trackers》
- 通过高阶DMD对地铁的实时短时OD预测
- 群主微信sdk说明地址
- CodeForces 1538G : Gift Set 思维 + 二分
- 自然语言处理面试基础
- 汉语拼音方案里的O(哦)和 UO(窝)
- MATLAB 车牌识别程序介绍 SVM、神经网络[毕业设计]
- 需求调研(一)——调研流程和时间的把握
- excel2013鼠标滑动滚动条时出现已停止工作(故障模块OSF.dll)
- 本地 Services(服务)
- Nacos Spring Cloud入门
- 什么样的软件算是功能安全软件?
- 【重识云原生】第四章云网络4.3.10.2节——VXLAN Overlay网络方案设计
- zz .Net 实现游戏修改器