嵌入Mono vs Google V8?

时间:2011-03-03 11:06:57

标签: c++ mono v8 embedded-language embedded-v8

我们希望为项目添加脚本。

我们正在犹豫要使用哪个脚本引擎。 我在过去的V8中使用它并且令人印象深刻。我也使用过Mono,但仅限于玩具项目或原型。

约束是:

  1. 执行速度。
  2. 易于集成。
  3. 必须在Windows上工作。
  4. 64位支持。
  5. 在Visual Studio下编译。
  6. 哪种引擎最适合?

    (是否有任何使用Visual Studio在win64下编译Mono的教程? 是否有一些包含Lib文件和DLL的软件包?)

5 个答案:

答案 0 :(得分:7)

我建议你看看Lua。我认为它非常符合您的需求。

答案 1 :(得分:4)

由于没有赞成回答,我将提到ChaiScript(是的,我是该项目的共同创建者)。它是一个仅限标题的脚本引擎,专为嵌入C ++应用程序而设计。它具有完整的64位支持,可与MSVC,G ++和MinGW配合使用。唯一的外部依赖是提升。

没有赢的地方就是速度。如果您需要在脚本本身进行大量计算,那么我认为您使用的脚本错误。您可以向脚本引擎公开的功能越高级别越好。

答案 2 :(得分:2)

V8。它实际上脚本引擎,而不是像Mono这样的完整编程环境(可以与Java相媲美)。

但是......如果你想要一种脚本语言,你可能也想看看Lua。它很容易嵌入,非常快,非常小,很容易编程,并且具有非常自由的许可。如果速度很重要,那就是LuaJIT,它仍处于开发阶段,但是要小心翼翼地击败C进行数值编程。

答案 3 :(得分:2)

Mono发行版中包含一个MSVS解决方案文件,它足以构建一个库(但是你无法构建.DLL,最好从二进制发行版中选择它们)。有关将.NET DLL嵌入单个二进制文件的方法,请参阅mkbundle。至于脚本本身,您可以嵌入Mono C#编译器(它不是那么大,并且易于集成)或使用任何针对.NET的众多脚本语言 - 例如,IronPython。

答案 4 :(得分:0)

Python也不错,Boost.Python