现在的位置: 首页 > 综合 > 正文

Boost.python 编译和使用

2013年03月15日 ⁄ 综合 ⁄ 共 894字 ⁄ 字号 评论关闭

cent os

1)  安装python

yum install python26

2) 安装python devel

yum search python | grep -i devel
yum  install python-devel.x86_64  =====================否则一堆怪异的找不到头文件错误

3) 库、include

-lboost -lboost_python -lpython2.6

-I/usr/include/python2.6/

4) 安装boost

-lboost -I/usr/local/boost

安装boost_python。 默认boost不是完全安装?

1)编译bjam
sh ./bootstrap.sh
2)编译boost python
进入boost源码目录,执行
sudo ./bjam -toolset=gcc --with-python --with-python --layout=tagged --build-type=complete  stage
顺利完成后,将在stage目录下生成相应的lib

======================================使用===========================================

1) c/c++编译成so

2) so中增加代码行

python是boost::python名字空间。

def的第一个参数是导出给python调用的; 第二个参数是c/c++函数

其中, MODULE名字和so的名字必须相同(不用带.so); BOOST_PYTHON_MODULE只能有一个, 否则就会报错重定义。

BOOST_PYTHON_MODULE(libcheck) {
  python::def("CheckInit", CheckInit);
  python::def("CheckCaseClassIdContinous", CheckCaseClassIdContinous);
  python::def("GetOKMessages", GetOKOKMessages);
  python::def("GetERMessages", GetERERMessages);
}

【上篇】
【下篇】

抱歉!评论已关闭.