你对Pyste的实际运用于功能有所了解吗?其实Pyste与SWIG很类似,对于相关的源文件都是可以按照C++的相关形式来写的,那么以下的文章主要是介绍Pyste是怎么在Boost.Python的自带的代码中生成器。
你只要编写相应的接口文件即可生成相应代码。Pyste需要先安装才能使用。进入Boost的安装目录,然后“/libs/python/pyste/install”目录,运行python setup.py install,完成Pyste安装。
由于Pyste需要GCC-XML的支持,因此需要到GCC-XML的官方网站下载Windows版本的GCC-XML。安装完GCC-XML后,需要将其安装路径添加到系统PATH变量中。另外Pyste还需要ElementTree的支持,因此需要到其相关的官方网下载安装。
编写如下所示头文件“Num.h”。
- class Num
- {
- int value;
- void set( int n )
- {
- value = n;
- }
- int get()
- {
- return value;
- }
- };
编写如下所示接口文件“world.pyste”。
- Class("Num", "Num.h")
由于在Windows下文件路径的问题,使用Pyste时最好将其放到“Num.h”和“world.pyste”所在的目录。在Windows命令行中进入其目录,运行如下命令。
- python pyste.py --module=num world.pyste
在Boost.Python的相关代码的运行命令后将生成“num.cpp”文件,其内容如下所示。
- // Boost Includes ===================================
===========================- #include <boost/python.hpp>
- #include <boost/cstdint.hpp>
- // Includes =====================================
===============================- #include <Num.h>
- // Using ======================================
=================================- using namespace boost::python;
- // Module =================================
=====================================- BOOST_PYTHON_MODULE(num)
- {
- class_< Num >("Num", init< >())
- .def(init< const Num& >())
- ;
- }
以上就是对Pyste为何是Boost.Python自带的代码生成器的缘由的相关的内容的介绍,望你会有所收获。
【编辑推荐】