环境:
win7-64位
VS2013
python-2.7.8-32位 (得用32位,这很重要)
boost.python-1.57
步骤:
一. “安装”boost.python
解压boost.python后,用VS的[本机命令提示工具](开始-VS2013-VS Tools)进入到boost的文件夹,运行bootstrap.bat生成bjam.exe。然后运行:
bjam --with-python link=shared runtime-link=shared
来编译出boost.python的库。成功的话会在boost_1_57_0\stage\lib下生成4个文件。
如果失败的话,检查一下:
解释一下bjam这里用到的参数(详细参数说明可以运行bjam --help查看):
link和runtime-link都要设为shared,因为到时导出dll时得用到动态的库。
二. 使用VS2013生成dll
用VS2013新建一个win32 dll项目(例如项目名称为boostDemo),然后设置几个项目属性:
在boostDemo.cpp中输入代码:
#include "stdafx.h"
#include <boost\python.hpp>
char const* greet()
{
return "hello world";
}
BOOST_PYTHON_MODULE(boostDemo)
{
using namespace boost::python;
def("greet", greet);
}
然后生成dll文件,将dll文件名更改为boostDemo.pyd(注意为什么是boostDemo)。
三. python调用
将刚才生成的boostDemo.pyd和${boost根目录}\stage\lib下的boost_python-vc120-mt-gd-1_57.dll复制到python项目的根目录。
在python项目入口源文件中输入代码:
import boostDemo
print boostDemo.greet()
运行之,如无意外,会输出:
>>hello world
大功告成!下次会讲怎么导出C++类。