Boost.Python自带的代码生成器是Pyste的缘由


你对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”。

  1. class Num  
  2. {  
  3. int value;  
  4. void set( int n )  
  5. {  
  6. value = n;  
  7. }  
  8. int get()  
  9. {  
  10. return value;  
  11. }   
  12. };   

编写如下所示接口文件“world.pyste”。

  1. Class("Num", "Num.h") 

由于在Windows下文件路径的问题,使用Pyste时最好将其放到“Num.h”和“world.pyste”所在的目录。在Windows命令行中进入其目录,运行如下命令。

  1. python pyste.py --module=num world.pyste 

在Boost.Python的相关代码的运行命令后将生成“num.cpp”文件,其内容如下所示。

  1. // Boost Includes ===================================
    ===========================  
  2. #include <boost/python.hpp> 
  3. #include <boost/cstdint.hpp> 
  4. // Includes =====================================
    ===============================  
  5. #include <Num.h> 
  6. // Using ======================================
    =================================  
  7. using namespace boost::python;  
  8. // Module =================================
    =====================================  
  9. BOOST_PYTHON_MODULE(num)  
  10. {  
  11. class_< Num >("Num", init< >())  
  12. .def(init< const Num& >())  
  13. ;  
  14. }   

以上就是对Pyste为何是Boost.Python自带的代码生成器的缘由的相关的内容的介绍,望你会有所收获。

相关内容

    暂无相关文章

评论关闭