返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c++ python交互之boost.p
  • 831
分享到

c++ python交互之boost.p

pythonboost 2023-01-31 03:01:39 831人浏览 安东尼
摘要

我们做的项目测试代码用的是python,但是由于开发用的代码是c++,所以很多交互的地方是需要Python调用c++的代码。为此我们将c++的函数打包成.so文件被调用。在实际项目中会遇到各种类型的应用,项目组的郭松同学做了比较详细的总结。

我们做的项目测试代码用的是python,但是由于开发用的代码是c++,所以很多交互的地方是需要Python调用c++的代码。为此我们将c++的函数打包成.so文件被调用。在实际项目中会遇到各种类型的应用,项目组的郭松同学做了比较详细的总结。我将之收集成文,记录如下,便于自己以后翻阅,也为自己博客添砖加瓦,感谢的话就不说了,如果有朋友因为这篇文章受益,请感谢小松同学。
1.普通函数转换
C++代码: src.cpp

#include <iOStream>
#include <string>
using namespace std;


char const* testA()
{
return "just a test";
}

string testB(string str)
{
cout << str << endl;
return str;
}

void testC(string str,int num)
{
cout << "str is : " << str << endl;
cout << "int is : " << num << endl;
}
python 转换代码: src4py.cpp
#include <boost/python.hpp>
#include "src.cpp"
using namespace boost::python;
BOOST_PYTHON_MODULE(test) //test是python中模块名字
{
def("a", testA);//将testA映射为a 函数
def("b", testB);
def("c", testC);
}
Makefile文件
因为是第一篇将makefile也展示一下,后面文章将不记录Makefile,因为都一样。/usr/local/boost_143/include/是事先必须准备的库文件。
all:test.so
rm -rf src.o src4py.o
rm -rf cass_pack_factory_src.o cass_pack_Factorysrc4py.o

test.so:src.o src4py.o
g++ src4py.o -o test.so -shared -fPIC -I /usr/local/python/include/python2.5/ -I /usr/local/boost_143/include/ -L /usr/local/python/lib/python2.5/ -L
/usr/local/boost_143/lib/ -lboost_python
src.o:
g++ -c src.cpp -o src.o
src4py.o:src.o
g++ -c src4py.cpp -o src4py.o -fPIC -I /usr/local/python/include/python2.5/ -I /usr/local/boost_143/include/

clean:
rm -rf src.o src4py.o
rm -rf test.so
python 调用代码:test.py
import test

test.a()
test.b("just a test!")
test.c("call me string!",7)

--结束END--

本文标题: c++ python交互之boost.p

本文链接: https://www.lsjlt.com/news/187700.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • c++ python交互之boost.p
    我们做的项目测试代码用的是python,但是由于开发用的代码是c++,所以很多交互的地方是需要python调用c++的代码。为此我们将c++的函数打包成.so文件被调用。在实际项目中会遇到各种类型的应用,项目组的郭松同学做了比较详细的总结。...
    99+
    2023-01-31
    python boost
  • C++ python 交互之 pytho
    代码片段如下, typedef map<string ,string> smap;//要转换的目的map 转换函数 string req_update_userprofile_pack_data2(std::string wor...
    99+
    2023-01-31
    python pytho
  • 交互式python shell之ipyt
    IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPython会列出zlib模块下所有的属性、方法...
    99+
    2023-01-31
    python shell ipyt
  • python 与 C 的交互(ctype
    ctypes是Python的一个外部库,可以使用python语言调用已经编译好的C语言函数以及数据类型并进行数据交换等。ctypes的官方文档在https://docs.python.org/3/library/ctypes....
    99+
    2023-01-31
    python ctype
  • python之pexpect实现自动交互
    Pexpect 是 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使用范围很广,可以用来实现与 ssh、ftp ...
    99+
    2023-01-31
    python pexpect
  • 详解c#与python的交互方式
    目录前言: 一、IronPython 二、Python打包exe调用 三、Python提供WebApi接口(推荐) 总结: 前言:  在平时工作中,需求有多种实现方式;根据不同的需...
    99+
    2024-04-02
  • Python和C/C++交互的几种方法总结
    前言 python作为一门脚本语言,其好处是语法简单,很多东西都已经封装好了,直接拿过来用就行,所以实现同样一个功能,用Python写要比用C/C++代码量会少得多。但是优点也必然也伴随着缺点(这是肯定的,...
    99+
    2022-06-04
    几种方法 Python
  • python 用户交互
    input是个内建函数,具体用法:接收用户输入的内容,输入的字符串,接收到就是字符串;输入的是数字,接收的就是数字 来个简单的用户名和密码输入的例子,代码如下:#!/usr/bin/env python # coding...
    99+
    2023-01-30
    用户 python
  • python用户交互
    = 赋值. 把等号右边的内容赋值给左边 s = input("这里是input:") # input输入. 让用户输入一些内容. 程序会停在这句话. 阻塞. input结束的时候. 会自动的收集到用户输入的内容. 把内容返回给前面的变量 ...
    99+
    2023-01-30
    用户 python
  • python交互式(input)
    #交互式输出#!/usr/bin/env   python # -*- coding:utf-8 -*- name = input("what is your name") password = input("Please enter pa...
    99+
    2023-01-31
    python input
  • C语言和命令行之间的交互方式
    本篇内容介绍了“C语言和命令行之间的交互方式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Windows操作系统中,后缀为.exe的文件都...
    99+
    2023-06-20
  • mysql与python的交互
    mysql是一种关系型数据库,是为了表示事物与事物之间的关系,本身存于数据库中的内容意义并不大,所以广泛应用于编程语言中,python中九含有与MySQL交互的模块 pymysql 编程对mysql的操作 #首先需要引入pymysql模块 ...
    99+
    2019-09-04
    mysql与python的交互
  • python多进程--交互
    1.管道使用 ''' 管道Pipe ''' from multiprocessing import Process,Pipe def f(conn): conn.send('child message')#给主进程发送消息 ...
    99+
    2023-01-31
    进程 python
  • python 与ADB shell交互
    python交互 使用subprocess 使设备具有部分Linux命令 python脚本:下载busybox,并且放在与脚本相同的目录下 # coding:utf-8 # 这个脚本用于使环境拥有busybox的环境 impo...
    99+
    2023-01-31
    python ADB shell
  • Shell之免交互的实现
    目录前言一、Here Document1.Here Document概述2.基本语法格式3.Here Documen免交互4.变量设定(支持变量替换)5.格式控制6.多行注释二、Expect1.Expect概述2.exp...
    99+
    2022-07-19
    Shell 免交互
  • Rust 与 Mysql 交互篇之 Sqlx
    数据库在编程中是一个很重要的环节,这里是记录rust如何操作数据库并以mysql为主的做简单的使用说明。rust中对mysql数据库存有支持的我所知道的crate: mysql 单一驱动sqlx 多驱...
    99+
    2023-09-15
    rust mysql 开发语言
  • python语法 之与用户交互和运算符
    目录一 程序与用户交互1.1、什么是与用户交互1.2、为什么要与用户交互?1.3、如何与用户交互1.3.1 输入input:1.3.2 输出print:1.3.3 输出之格式化输出二...
    99+
    2024-04-02
  • Python基础之简单的用户交互程序
    我们经常使用的程序都会有与用户交互的程序,比如网页的登录,需要输入自己的账号,密码这类的用户交互功能。 我们来写个简单的用户输入和输出的程序代码: user1 = input("账号:")  #申明变量user1 储存获取用户输入的账号 ...
    99+
    2023-01-30
    简单 基础 程序
  • Python交互Redis的实现
    模块(Redis) Ubuntu sudo pip3 install redis 使用流程 import redis # 创建数据库连接对象 r = redis.Redis(host='127.0.0.1',port=6...
    99+
    2022-08-10
    Python交互Redis
  • Redis数据库--python交互
    - 安装 --安装包 ①进入虚拟环境py2_db,联网安装包redis pip install redis ②中文官网(http://redis.cn/clients.html...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作