比较简单,仅供小白参考哈。
本人安装的是Python3,安装目录为C:\Python37;
1.下载boost库在windows下通过b2.exe自己尝试编译库文件,编译方法可参考本文。
boost库下载链接:下载链接
boost库编译方法:boost库编译方法
2.打开VS2019,新建类型为dll动态链接库的项目,起名TheAPP,测试程序如TheAPP.cpp,内容如下:
#include "pch.h"
#include <boost/python.hpp>
#include <iostream>
char const* greet()
{
return "hello, world";
}
int Add(int Num)
{
Num += 1;
return Num;
}
BOOST_PYTHON_MODULE(TheAPP)
{
using namespace boost::python;
def("greet", greet);
def("Add",Add);
}
右击项目名称选择属性,更改以下地方后点击确定保存:
①包含boost的头文件和python的头文件
②链接相关库文件和将输出类型由dll改为pyd格式;
然后编译整个项目,在生成的Debug中找到TheAPP.pyd文件。
3.新建一个test文件夹,在文件夹内新建123.py程序,并将上述生成的TheAPP.pyd放在该文件夹里,此外还需将python的dll也放到该文件夹里(否则执行py程序会报警DLL load failed)。
下图左侧为test文件夹内容,右侧上方为123.py程序,右侧下方为执行py生成的结果。
备注:如果编译boost库时候选的stage方式,则不需要将python的2个dll拷进test文件夹即可运行。
关于调试
①将上述123.py增加一行代码,然后将程序运行起来,此时右侧窗口状态在等待用户输入,如下图:
②在TheAPP里添加断点,然后点击菜单栏 调试->附加到进程,选中当前正在运行的python进程,点击下方的附加按钮,如下图:
③此时在python程序里随意输入一个数值,然后在执行print(TheAPP.greet())代码时,vs中会进入对应的断点位置,此时可通过F10或F11在VS中进行单步调试,如下图:
以上,就是Boost.Python封装C++库学习记录。
努力、奋斗!