2

我说的是ROOT 的 CINT

我一直在用 C++ 开发一个游戏,它使用 Python 对 AI 进行编程。尽管我很喜欢 Python,以及它让 AI 编程变得多么容易(生成器和 FP 真的很性感),但它让非平凡的算法运行得如此缓慢。

然后我记得我在某处读过有关 CINT 以及它是如何嵌入的。现在我需要你的帮助来决定是否将 CINT 实现为备用脚本系统。在 python 中,我使用 Boost::Python,一旦你习惯了它,暴露类和对象几乎是无痛的。CINT有这么容易吗?

4

1 回答 1

1

我编写了针对 Root 编译的类,然后直接在解释器中访问它们。这很容易,尽管所有这些类都应该派生自TObject. 我不知道这是 cint 要求还是 ROOT 要求。您最好在RootTalk CINT 支持论坛上提问


要解决评论中的问题:

  • from 的派生TObject可以是二手的:您的类可以从派生自的东西派生TObject,它只需要一个 TObject。
  • Root 提供了一个工具 ( makecint) 和一些宏 (ClassDefClassImp) 来支持将您的代码与解释执行环境集成:编写您的 clas 派生自TObject; ClassDef在头文件中包含ClassImp宏,在源文件中包含宏;运行makecint代码以生成所有繁琐的集成废话,然后将您的代码生成的代码编译为共享对象(或者,我认为是 Windows 框上的 dll);启动解释器;加载库.L;并且您的课程与解释环境完全集成(选项卡完成将起作用等等)。构建可以自动化make(以及可能的其他工具)。##Again,##我不知道这其中有多少属于ROOT,有多少属于cint。但它都是开源的,所以你可以抓住和调整你需要的东西。
于 2010-06-25T01:21:43.717 回答