【问题标题】:Convert C++ Header Files To Python将 C++ 头文件转换为 Python
【发布时间】:2010-09-27 07:35:15
【问题描述】:

我有一个 C++ 标头,其中包含 #define 语句、枚举和结构。我尝试使用 Python 中包含的 h2py.py 脚本无济于事(除了给我转换的#defines)。任何帮助将不胜感激。

【问题讨论】:

    标签: c++ python data-structures enums header


    【解决方案1】:

    刚刚找到pycparser。可能有用。

    【讨论】:

      【解决方案2】:

      我不知道 h2py,但你可能想看看 'ctypes' 和 'ctypeslib'。 ctypes 包含在 python 2.5+ 中,旨在创建与 c-structs 的二进制兼容性。

      如果你添加 ctypeslib,你会得到一个名为 codegen 的子工具,它有一个“h2xml.py”脚本和一个“xml2py.py”,它们的组合将自动生成你正在寻找的 python 代码来自 C++ 头文件。

      ctypeslib:http://pypi.python.org/pypi/ctypeslib/0.5.4a

      h2xml.py 将需要另一个名为 gccxml 的工具:http://www.gccxml.org/HTML/Index.html

      最好检查(通过 CVS)最新版本的 gccxml 并自己构建它(实际上做起来比说的容易)。预打包版本较旧。

      【讨论】:

      【解决方案3】:

      您从哪里得知 h2py 与结构或枚举有任何关系?

      来源

      # Read #define's and translate to Python code.
      # Handle #include statements.
      # Handle #define macros with one argument.
      

      “enum”和“struct”这两个词永远不会出现在模块中。

      【讨论】:

        【解决方案4】:

        据我所知,h2py.py 不打算转换除#define 宏以外的任何东西。我确实遇到了cppheaderparser,这可能值得一看。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-01
          • 2014-09-13
          • 1970-01-01
          • 2010-10-28
          • 2010-09-11
          相关资源
          最近更新 更多