我们希望为一个项目添加脚本功能。
我们正在犹豫使用哪个脚本引擎。 我过去使用过V8引擎,它非常出色。我也用过Mono,但仅限于玩具项目或原型。
我们的限制条件是:
- 执行速度快。
- 易于集成。
- 必须在Windows上运行。
- 支持64位。
- 可在Visual Studio下编译。
哪种引擎最适合?
(是否有关于在win64下使用Visual Studio编译Mono的教程? 是否有一些包含Lib文件和DLL文件的软件包?)
我们希望为一个项目添加脚本功能。
我们正在犹豫使用哪个脚本引擎。 我过去使用过V8引擎,它非常出色。我也用过Mono,但仅限于玩具项目或原型。
我们的限制条件是:
哪种引擎最适合?
(是否有关于在win64下使用Visual Studio编译Mono的教程? 是否有一些包含Lib文件和DLL文件的软件包?)
由于没有获得点赞的答案,我想提一下 ChaiScript(是的,我是该项目的联合创始人)。这是一个仅用于嵌入C++应用程序的头文件脚本引擎。它具有完全的64位支持,并且可以与MSVC、G++和MinGW配合使用。唯一的外部依赖项是boost。
它在速度方面并不占优势。如果您需要在脚本本身中进行大量计算,那么我认为您正在错误地使用脚本。您可以向脚本引擎公开越高级别的函数,效果会更好。
V8。它实际上是一个脚本引擎,而不是像Mono(与Java相媲美的全功能编程环境)一样的完整的编程环境。
然而...如果你想要一种脚本语言,你也可以看看Lua。它以容易嵌入、非常快速、非常小巧、编程相对容易和非常自由的许可证著称。如果速度很重要,还有LuaJIT,它仍在开发中,但通过精心设计,将轻松超越C进行数值编程。
在Mono发行版中包含了一个MSVS解决方案文件,它足以用于构建库(但是你将无法构建.DLL文件,最好从二进制分发中选择)。请参阅mkbundle
,了解将.NET DLL嵌入单个二进制文件的方法。至于脚本本身,您可以嵌入Mono C#编译器(它不是很大,并且易于集成),或使用任何针对.NET的众多脚本语言,例如IronPython。