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”。
- 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自帶的代碼生成器的緣由的相關的內容的介紹,望你會有所收獲。
【編輯推薦】