Boost.python 调用c++需要两个步骤:
1.创建有关的cpp文件
2.编译
1.创建有关的cpp文件:hello.cpp
char const* greet()
{
return "hello, world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello) // Python 模块开始
{
using namespace boost::python; // 打开命名空间
def("greet", greet);
}
2.使用Makefile编译
编译的方式有多种,可以用shell命令直接编译,也可以用makefile
PYTHON_VERSION = 2.7
PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION)
# location of the Boost Python include files and library
#
BOOST_INC = /usr/local/include
BOOST_LIB = /usr/local/lib
# compile mesh classes
TARGET = hello
$(TARGET).so: $(TARGET).o
g++ -shared $(TARGET).o -L$(BOOST_LIB) -lboost_python -L/usr/lib/python$(PYTHON_VERSION)/config -lpython$(PYTHON_VERSION) -o $(TARGET).so
$(TARGET).o: $(TARGET).cpp
g++ -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c $(TARGET).cpp
clean:
rm *.so *.o
#gcc、rm、cp前面是tab分割符,不能用空格,否则会出现:
#“makefile:2: *** 遗漏分隔符 。 停止。”
编译完成后会得到一个hello.so的文件
最后在python中执行
参考博客:点这里