如何通过Boost.Python在Python中使用C++类和函数

 我来答
就烦条0o
2016-09-11 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
(1)从Boost官方网站下载Boost库源文件,将其解压至某一目录中。

(2)将Boost解压至的目录添加到VC++ 6.0的【Include files】中,

(3)进入Boost目录下的“libs\python\build\VisualStudio”子目录中,在VC++ 6.0中打开其中的“boost_python.dsw”文件。

(4)单击【Build】|【Batch Build】命令,分别编译Boost.Python的Debug和Release版。

(5)编译完成后将在Boost目录下的“libs\python\build\bin-stage”子目录中生成动态链接库和库文件。由于使
用Boost.Python编写的Python扩展在运行时根据版本不同需要“boost_python.dll”和
“boost_python_debug.dll”文件。为了方便,可以将其放到Windows安装目录下的“system32”目录下。否则,需要将其
和Python扩展放在同一目录中。

(6)将Boost目录下的“libs\python\build\bin-stage”子目录添加到VC++ 6.0的【Library files】中,

完成上述设置后就可以使用Boost.Python编写Python扩展了。

使用Boost.Python扩展和嵌入Python

通过Boost.Python可以在Python内使用C++类和函数。和SWIG一样Boost.Python简化了编写Python扩展的代码,而不用使用Python/C API。但与SWIG不同,Boost.Python是一个类库,无需再使用接口文件。

初始化和方法列表

在Boost.Python中可以通过使用BOOST_PYTHON_MODULE来命名模块名。在BOOST_PYTHON_MODULE中则可以使用def来实现使用Python/C API定义的方法列表。以下是一个简单的例子。

void show()

声明show函数

{

cout << "Boost.Python";

}

BOOST_PYTHON_MODULE(example)

使用BOOST_PYTHON_MODULE命名模块名为“example”

{

def("show",show);

相当于定义方法列表

以上就是对如何编译Boost.Python以及如何使用Boost.Python扩展和嵌入Python的相关的内容的介绍,望你会有所收获。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式