gpt4 book ai didi

c++ - C++ 库的 Python 包装器

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:48:46 26 4
gpt4 key购买 nike

我有 .so C++ 库(没有源代码)和它的 .h 头文件,我想在一些 Python 项目中使用这个库。

我用谷歌搜索了一下,发现我可以使用 Boost.Python 或 SWIG 为 C++ 库制作一个包装器。但是我还没有找到如何使用 SWIG 处理已编译的库的示例或手册。

至于 Boost.Python,我还没有找到使用头文件自动包装所有函数的手册(只找到如何包装,例如,一个函数)。

我正在寻找可以提供帮助的示例或链接。感谢您的阅读。

最佳答案

使用 SWIG 包装仅包含头文件和 DLL/SO 的库与使用 SWIG 包装任何其他库没有什么不同。在最基本的形式中,您将定义一个接口(interface):

%module my
%{
#include "my.h"
%}

%include "my.h"

然后运行 ​​SWIG:

swig -python my.i

并编译

gcc -Wall my_wrap.c -shared -o _my.so -lpython -I/path/to/python -lmy

重要的是你已经链接到库 (-lmy),它实现了你的 .h 文件中的函数/类,但是你必须正常地这样做才能生成一个接口(interface)使用 SWIG。

(如果您使用不同的编译器,您显然需要调整上述内容)

关于c++ - C++ 库的 Python 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18797465/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com