首页 > 编程语言 >python调用c++的方法,加速运算

python调用c++的方法,加速运算

时间:2022-10-09 18:39:29浏览次数:49  
标签:调用 python c++ int add so cpp calc Calc


cpp源代码

#include "iostream"

using namespace std;

class Calc {
public:
int add(int a, int b);
};

int Calc::add(int a, int b) {
cout << "收到参数为a,b: " << a << " " << b << endl;
return a+b;
}

extern "C" {
Calc calc;
int add(int a, int b) {
return calc.add(a, b);
}
};

编译cpp代码成so动态库

g++  -o add.so -shared -fPIC add.cpp

# 如果c++代码路由cout 中文乱码再用下面这个
g++ -finput-charset=UTF-8 -fexec-charset=GBK -o add.so -shared -fPIC add.cpp

python代码

import ctypes

dll = ctypes.cdll.LoadLibrary

calc_lib = dll('./add.so')

r = calc_lib.add(3, 5)
print(r)

输出

PS D:\workspace\hellocpp> python .\app.py
收到参数为a,b: 3 5
8


标签:调用,python,c++,int,add,so,cpp,calc,Calc
From: https://blog.51cto.com/u_12836588/5741030

相关文章

  • python函数
    今日内容概要文件内光标的移动实战演习计算机硬盘存取数据的原理文件内容修改函数简介函数的语法结构函数的定义与调用今日内容详细文件内光标移动案列(了解......
  • java---一个类调用另一个类的属性或方法
    在一个类里面调用另一个类得方法,可以在这个类里面new一个要调用的那个类的对象,从而调用另一个类的方法,也可以用另一个类的对象作为形参 //在一个类里面访问另一个类的属......
  • 使用Java调用RestFul接口的几种方法
    使用Java调用RestFul接口的几种方法 1.HttpURLConnectionpublicStringpostRequest(Stringurl,Stringparam){StringBufferresult=newStringBuffer();......
  • 10、python正式篇 文件和光标移动
    目录一、文件操作1、文件的概念2、代码打开文本的方式二、文件读写模式1、'r'只读模式read2、'w'只写模式write3、'a'尾部追写模式add三、文件操作模式1、t文本模式......
  • python 时间相关操作
    获取今天是周几time.strftime("%a",time.localtime())获取今天是一周的第几天time.strftime("%w",time.localtime())获取一段时间之前的日期信息((datetime.datetime.......
  • python linux上docker部署开发
    fastapi部署到linux上的docker上(打通开发到生产的环境部署问题,最便捷的方式就是用docker容器)目录:pyserver.pyrequirement.txtDockerfileDockerfileFROMpython:3.10ADD./p......
  • python多线程
    importtimeimportdatetimeimportthreadingdefdotask():whileTrue:print(datetime.datetime.now().strftime('%Y-%m-%d%H:%M:%S'))time.sleep(5)......
  • python 文件去重
    importtimedefmain(file_name):try:withopen(file_name,'r',encoding='utf-8')asf:lines=f.readlines()print(lines)start=time.time()......
  • python初识函数
    今日内容概要文件内光标的移动实战演练计算机硬盘存储数据的原理文件内容修改函数简介函数的语法结构函数的定义与调用今日内容概要文件内光标移动的......
  • python设置国内镜像源
    临时使用pipinstall注意,simple不能少,是https而不是http设为默认升级pip到最新的版本(>=10.0.0)后进行配置:python-mpipinstall--upgradepippipconfigset......