Python.boost学习笔记(3)
2015-01-26 04:29
423 查看
前面学习了如何把python embed 到 c++里并且实现共享object. boost主要的作用还是在于wrap c++的API。 下面会学习相关的知识。
第一个简单的例子是如何将简单的function wrap并且编译生成.so文件
char const* greet()
{
return "hello, world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
下面是Makefile:
# location of the Python header files
PYTHON_VERSION = 2.7
PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION)
# location of the Boost Python include files and library
BOOST_INC = /usr/include
BOOST_LIB = /usr/lib
# compile mesh classes
TARGET = hello_ext
$(TARGET).so: $(TARGET).o
g++ -shared -Wl,--export-dynamic $(TARGET).o -L$(BOOST_LIB) -lboost_python -L/usr/lib/python$(PYTHON_VERSION)/config -lpython$(PYTHON_VERSION) -o $(TARGET).so
$(TARGET).o: $(TARGET).C
g++ -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c $(TARGET).C
第一个简单的例子是如何将简单的function wrap并且编译生成.so文件
char const* greet()
{
return "hello, world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
下面是Makefile:
# location of the Python header files
PYTHON_VERSION = 2.7
PYTHON_INCLUDE = /usr/include/python$(PYTHON_VERSION)
# location of the Boost Python include files and library
BOOST_INC = /usr/include
BOOST_LIB = /usr/lib
# compile mesh classes
TARGET = hello_ext
$(TARGET).so: $(TARGET).o
g++ -shared -Wl,--export-dynamic $(TARGET).o -L$(BOOST_LIB) -lboost_python -L/usr/lib/python$(PYTHON_VERSION)/config -lpython$(PYTHON_VERSION) -o $(TARGET).so
$(TARGET).o: $(TARGET).C
g++ -I$(PYTHON_INCLUDE) -I$(BOOST_INC) -fPIC -c $(TARGET).C
[ethan@localhost pack]$ python Python 2.7.5 (default, Nov 3 2014, 14:26:24) [GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import hello_ext >>> hello_ext.greet() 'hello, world' >>>
相关文章推荐
- Boost python 学习笔记
- Boost.Python学习笔记
- Boost.Python 学习笔记
- Boost.Python 学习笔记 No.2——python操作c++对象
- Boost python 学习笔记
- Boost.python学习笔记(2)
- Python.boost学习笔记(4)
- Opencv Python版学习笔记(八)字符识别-分类器(SVM,KNearest,RTrees,Boost,MLP)
- Boost.Python学习笔记
- Boost.python学习笔记(1)
- Opencv Python版学习笔记(八)字符识别-分类器(SVM,KNearest,RTrees,Boost,MLP)
- Boost.Python 学习笔记 No.1——python调用c函数
- Boost::Python学习笔记
- Boost.Python学习笔记
- 经典的Boost学习笔记
- Python 正则式学习笔记
- Boost学习笔记 operators
- Python学习笔记(1)
- Python学习笔记(二)