我说的是ROOT's CINT。
我一直在用c++开发游戏,其中使用Python编写AI。尽管我很喜欢Python,并且它使AI编程变得如此容易(生成器和FP确实很性感),但它使非平凡的算法运行得如此缓慢。
然后我想起了我读过的一些有关CINT的内容,以及它是如何嵌入的。现在,我需要您的帮助来确定是否将CINT实现为备用脚本系统。使用python时,我使用Boost::Python,这使您几乎一劳永逸地公开类和对象。 CINT可以轻松吗?
谢谢。
最佳答案
我编写了针对Root编译的类,然后直接在解释器中访问它们。这很容易,尽管所有这些类都应从TObject
派生。我不知道这是cint要求还是ROOT要求。您可能最好询问RootTalk CINT Support forum
要解决评论中的问题:
TObject
派生的可以是二手的:您的类可以派生自TObject
派生的东西,它只需要是一个TObject。 makecint
)和一些宏(ClassDef
和ClassImp
)来支持将代码与解释后的执行环境集成在一起:编写从TObject
派生的类;在 header 中包含ClassDef
宏,并在源文件中包含ClassImp
宏;在代码上运行makecint
以生成所有乏味的集成nonesense,然后将您的代码和所生成的代码编译为共享对象(或者,我假设是Windows框上的dll);启动口译员;用.L
加载库;并且您的类(class)与解释环境完全集成在一起(制表符补全将起作用)。可以使用make
(以及可能的其他工具)自动进行构建。 ##再次,##我不知道其中有多少属于ROOT,有多少属于COT。但这都是开源的,因此您可以轻松调整所需的内容。 关于c++ - 是否有将CINT嵌入C++应用程序的经验?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3114949/