前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c++ python交互之boost.p

c++ python交互之boost.p

作者头像
py3study
发布2020-01-08 16:10:02
6420
发布2020-01-08 16:10:02
举报
文章被收录于专栏:python3python3

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

1.普通函数转换

C++代码: src.cpp

#include <iostream> #include <string> using namespace std; /************************************************ simple method *************************************/ 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)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档