首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python调用C++而不修改C++代码

从Python调用C++而不修改C++代码
EN

Stack Overflow用户
提问于 2021-07-05 06:37:52
回答 1查看 411关注 0票数 0

我有几个(比方说5-10)大型C++项目。想想每个文件30到50个左右。这些项目是由其他团队维护的,我不能修改他们的代码。完全没有。

我需要在Python脚本中调用这些项目,该脚本应该调用所有项目的函数(显然,这些项目的每个顶级函数都会创建一个跨越多个文件的大型调用树)。

有没有一种方法可以从这些大型C++项目调用C++函数而不修改任何C++代码?

EN

回答 1

Stack Overflow用户

发布于 2021-07-05 06:45:14

是的,这是可能的。像OpenCV这样的主要库是在C++中实现的,并且有Python绑定来使用它们。

实现这一目标的方法有很多种,您可以阅读在这里概述。我相信现在最常见的是CythonandPyBind11。

从Python调用C或C++基本上包括定义Python可以理解的接口(从C和C++代码使用的数据类型之间进行转换),并编译该接口。像Cython这样的工具允许您用接近Python的语言编写该接口,并为您生成相应的、相当难看的C++接口,这样就可以编译它。

请注意,您只需要为您想要使用的函数编写接口,而不管这些函数将生成什么“调用树”。您根本不需要接触C++项目,只需要添加可以驻留在项目中的接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68251654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档